XSS跨站脚本攻击(level1-10)

本文阅读 6 分钟
首页 代码,Java 正文

练习网站: 欢迎来到XSS挑战 (angelo.org.cn)

img

事件:

onclick——鼠标点击事件

onmousemove——将鼠标光标移动到改内容上方触发事件

1.伪协议

javascript伪协议:这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行

<a href=javascript:alert(1)>click me</a>

2.反射型XSS:前端页面输入-后端PHP处理-前端页面输出

3.存储型XSS:前端页面输入-后端PHP处理-写入数据库-前端页面输出

发现留言板中的留言放在<p>标签中,并且存储到数据库中

将攻击语句从留言板中放入,网页会将其放入到数据库中,且永久存在

1.一个标签之间可以嵌套另外一个标签

2.左标签里面可以插入属性,但是不能插入另一个标签

3.<script>标签:可以执行标签之间的js代码

4.左标签里面可以插入JS事件(属性),该事件可以触发后面的JS代码

5.F12控制台可以执行JS代码

6.alert 弹窗 <script>alert(xss)</script>

7.console.log("") 控制台文本输出

8.<=< %gt;=>

name=<script>alert('xss')</script>

img

输入<script>alert('xss')</script>查看源码

img

方法一闭合标签

"><script>alert('xss')</script>

img

方法二闭合双引号

" οnclick=alert('xss') "

img

输入<script>alert('xss')</script>查看源码

img

先闭合标签,发现不行

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

>被转义

img

' οnmοuseοver=alert(1) ' 闭合前面的单引号

' οnmοuseοver='alert(1)  闭合onmouseover

img

输入<script " ' Oonn>查看源码

img

1.<>被html转码

闭合标签

img

输入<script " ' Oonn>查看源码

img

1.<>被html转码

2.oonn变成oo_nn

3.<script>变成<scr_ipt>

4.过滤大小写

闭合标签,测试伪协议

img

输入<script " ' Oonn>查看源码

img

1.<>被转码

2.<script>变成<scr_irt>

3.Oonn变成Oo_nn

采用大小写绕过

A." Onclick=alert(1) "

img

B. "><a hREf="javascript:alert(/xss/)">click me!</a>

img

C. "><SCript>alert(1)</SCript>

img

输入<script " ' Oonn>查看源码

img

1.<>被转码

2.script被转义

3.过滤大小写

采用双写绕过(oonn变成on)

img

Level8

输入<script " ' Oonn>查看源码

img

  1. 过滤大小写、双写、script、on、和双引号

进行编码绕过 #javascript:alert(1) 把c转换成十六进制(c)

img

输入<script " ' Oonn>查看源码

img

  1. 对<>、大小写、双写、”、进行转义,且对协议进行检测
  2. 尝试网页是否对http://位置检测<;script ' " oonn>http://,发现并没有位置检测

img

  1. 用//...//将http://进行注释,否则会影响javascript

先编码后注释 # javascript:alert(1)//http://

img

1.在URL测试

img

2.发现被隐藏的标签,切换payload进行测试,将?keyword换成?t_link,?t_history,?t_sort进行测试,发现t_sort中有注入点

img

3.构造一个新的type

?t_sort=" οnclick=alert(1) type=button "

img

第一关:<script>alert(1)</script>1、没有任何过滤。2、输出在一对标签之间,插入另一对标签。第二关:" οnclick=alert(1) "1、在页面源码第15行有输出,但是有过滤:把<>通过htmlspecialchars()函数进行html实体编码。2、在页面源码第17有输出,输出在左标签里面,没有任何过滤。3、通过闭合双引号插入onclick事件,进而通过点击触发alert()函数。第三关:' οnclick=alert(1) '1、在页面源码第15行有输出,但是有过滤:把<>通过htmlspecialchars()函数进行html实体编码。2、在页面源码第17行有输出,但是有过滤:把<>通过htmlspecialchars()函数进行html实体编码。3、通过闭合单引号插入onclick事件,进而通过点击触发alert()函数。第四关:" οnclick=alert(1) "1、在页面源码第15行有输出,但是有过滤:把<>通过htmlspecialchars()函数进行html实体编码。2、在页面源码第17行有输出,但是有过滤:把<>通过str_replace()函数替换为空。3、通过闭合双引号插入onclick事件,进而通过点击触发alert()函数。第五关:">点击1、在页面源码第15行有输出,但是有过滤:把<>通过htmlspecialchars()函数进行html实体编码。2、在页面源码第17行有输出,但是有过滤:把<script通过str_replace()函数替换为<scr_ipt;把on替换为o_n。3、通过">闭合<input>标签,再插入带有javascript伪协议的标签,第六关:" ONclick=alert(1) "1、在页面源码第15行有输出,但是有过滤:把<>通过htmlspecialchars()函数进行html实体编码。2、在页面源码第17行有输出,但是有过滤:把<script通过str_replace()函数替换为<scr_ipt;把on替换为o_n;src替换为sr_c;把data替换为da_ta;把href替换为hr_ef。3、通过ON绕过小写on替换插入ONclick事件,进而通过点击触发alert()函数。第七关:" oonnclick=alert(1) "1、在页面源码第15行有输出,但是有过滤:把<>通过htmlspecialchars()函数进行html实体编码。2、在页面源码第17行有输出,但是有过滤:强制转小写,并且把script、on、src、data、href替换为空。3、通过双写,绕过替换为空,插入ONclick事件,进而通过点击触发alert()函数。第八关:javascr%09ipt:alert(1)1、在页面第17行有输出,但是有过滤,把on替换为o_n,并且进行了html实体编码。2、在页面第20行有输出,但是有过滤,把on替换为o_n,并且进行了html实体编码。3、通过向javascrit中插入特殊符号%0A、%09、%0D,绕过script的替换。第九关:1、在javascript中,可以使用//进行注释第十关:1、在html标签中:type="hidden"表示隐藏该标签,可以向前插入type="text"显示该标签,两者同时出现,优先执行左边的。

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/m0_63127854/article/details/125070410
-- 展开阅读全文 --
BUUCTF Web [极客大挑战 2019]Knife
« 上一篇 06-24
安全面试之XSS(跨站脚本攻击)
下一篇 » 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复