文章目录
- 一、XSS漏洞认识、利用、防护
- 二、XSS窃取cookie
- 三、xss-lab第一关
- 四、xss-lab第二关
- 五、js引入的各类方式
- 六、xss-lab第三关
- 七、xss-lab第四关
- 八、xss-lab第五关
- 九、xss-lab第六关
- 十、xss-lab第七关
- 十一、xss-lab第八关
- 十二、xss-lab第九关
- 十三、xss-lab第十关
- 十四、xss-lab第十一关
- 十五、xss-lab第十二关
- 十六、xss-lab第十三关
- 小结
- 漏洞危害
- 绕过方法
- 防护思路
一、XSS漏洞认识、利用、防护
XSS:Cross Site Scripting跨站脚本攻击,攻击者将自己的恶意js代码让受害者浏览器执行
二、XSS窃取cookie进入xss测试平台,新建项目,选择超强默认模块
将代码放入匿名帖子中,受害者点击,攻击者获取受害者Cookie,用ModHeader插件粘贴受害者的cookie,进行登入
就可以实现用受害者的身份发帖子
在URL后面加上
两个输入点:URL和搜索栏
两个输出点:搜索栏和结果个数处
查看页面源代码:
在搜索栏输入test"onmouseover="alert();,结果如下:
//直接嵌入 script //通过事件属性值传入script字符串 //从远程嵌入script aaa //超链接 或者:aaa //html实体转义六、xss-lab第三关
查看页面源代码:
在搜索栏输入test'onmouseover='alert();,结果如下:
查看页面源代码,发现搜索框处的value=“”
所以在搜索框输入test"onmouseover="alert();
采用和第四关一样的test"onmouseover="alert();
发现不行,查看页面源代码,发现其变为了
所以换一个方法用超链接href
先用>隔开前面的内容,最后结果如下:
test">aaa九、xss-lab第六关
采用第五关的test">aaa
查看后台源代码,发现href变成了hr_ef
aaa">
尝试把href变成大写HREF,成功
test">aaa十、xss-lab第七关
尝试test">aaa
查看页面源代码:aaa">
发现它把href和script删了
于是尝试大小写绕过
test">aaa
还是不行
那么尝试双写关键字:
test">aaa
成功
它让我们添加友情链接,那么应该是通过添加友情链接,再点击下面超链接来触发弹窗
尝试javascript:alert(1)
查看页面源代码,发现c变成了_:
友情链接
那我们对c进行实体转义:
javascript:alert(1)
成功
直接输入javascript:alert(1),发现不行,但是正常网址却可以,说明可能有http字头的检测
尝试javascript:alert("http://")
查看页面源代码,发现javascript被插入了_,那么进行转义:
javascript:alert("http://")
成功
没有搜索框了,查看源代码,发现有三个标签,也就意味着是三个参数
构造语句,看看哪个标签的type能够被改变
?t_link=1" type="text"&t_history=1" type="text"&t_sort=1" type="text"
发现t_sort字段有回显,加以利用,构造代码:
?t_sort=1" οnmοuseοver="alert(1);" type="text"十四、xss-lab第十一关
有四个标签
构造语句,看看哪个标签的type能够被改变
?t_link=1" type="text"&t_history=1" type="text"&t_sort=1" type="text"&t_ref=1" type="text"
发现t_sort有回显
网页回显内容来自referer和User-Agent提交的参数,通过ModHeader插件构造Referer参数
referer:1" οnmοuseοver='alert(1)' type="text"十五、xss-lab第十二关
同11关一样,查看页面源代码,发现t_ua可以回显,修改UserAgent参数
User-Agent:1" οnmοuseοver='alert(1)' type="text"十六、xss-lab第十三关
同12关一样,查看页面源代码,发现t_cook可以回显,修改Cookie参数
Cookie:user=1" οnmοuseοver='alert(1)' type="text"小结 漏洞危害
条件满足的情况下:
1.窃取凭证
2.篡改页面
3.构造XSS蠕虫
大小写绕过
双写绕过
字符春html实体化编码绕过
1.如果针对简单的输入框,则需要识别和转义特殊字符,包括尖括号、引号、javascript中任意字符等
2.针对功能复杂的的富文本输入框,建议使用成熟的前端富文本输入框中,如ueditor等
3.在http的响应头中,为set-cookie选项额外添加http-only的值。



