【XSS】
一、反射型XSS(get)
先输入“ ‘"<>6666 ” 用于测试。
查看页面源码
输入被原封不动地输出到了 p 标签中
测试我们输入的JS代码,看是否会原封不动地输出,payload如下
<script>alert("xss")</script>
前端对输入长度做了限制,我们需要修改一下才能输入完整的payload
成功执行
查看源码可以发现,输入的payload嵌入了到了 p 标签里面
正确的JS代码,所以被浏览器正确执行了
二、盗取cookie
三、反射型xss(post)
四、存储型xss
存储型XSS和反射型XSS形成的原因是一样的,不同的是存储型XSS下攻击者的可以将脚本注入到后台存储起来,构成更加持久的危害
试着在皮卡丘平台上的XSS上留言,看看是否有什么过滤机制
发现我们的留言会一直存在,而且从表现上我们输入的内容直接输出了.下面通过源码观察
输入的东西,也直接输出在 p 标签中,看起来没有经过任何转义和处理
下面输入下面的Payload进行测试
成功弹窗
五、钓鱼攻击
六、键盘记录
七、DOM型XSS
在皮卡丘平台上的DOM型XSS上测试,观察到如下输出,发现和输入的内容有区别
观察页面源码
这里有段JS代码,它通过 getElementById 获取到了标签 Id 为 text的内容赋值给str
然后又把 str 的内容通过字符串拼接的方式写到了 a 标签的 href 属性中,a标签会写到 Id 为 dom的 div 标签中
我们通过闭合的方式构造Payload
构造的Payload如下
造成DOM型XSS的原因是前端的输入被DOM给获取到了,通过DOM又在前端输出,跟反射型和存储型比起来,它是不经过后台交互的.
八、DOM型XSS-X
随便输入一些内容,会多出下面一句话
观察源码
这里也有个JS代码,它定义了一个domxss函数
它利用 window.location.search 获取浏览器中URL的内容,然后赋值给 str
然后经过URL解码和字符串分隔,取出URL中的参数内容
再把 “+” 替换为 “ ”(空格),赋值给 xss
最后把 xss 拼接到 a 标签中,然后写到 Id 为 dom 的 div 标签中
跟前面的DOM不同的是,它的输入是从浏览器的URL中获取的,很像反射型XSS(get)
构造的Payload跟刚才是一样的
九、XSS之盲打
在皮卡丘平台上,我们随便输入一些东西
提交后我们输入的内容不会在前对输出,而是提交到了后台,可能管理员会去看
如果我们输入一个JS代码,管理员登录后台管理界面,如果后台把我们的内容输出
那后台管理员可能遭受到我们的XSS攻击,我们提交以下内容
并登录后台管理界面(账号密码为admin,123456)
一登录进来就遭受了XSS攻击
十、XSS之过滤
在皮卡丘平台上,输入下面的内容看一下后台会怎么处理
输入的<script>标签被去掉了
尝试用大小写混合的方式看看能否绕过
成功弹窗
也可以用别的攻击Payload,后台可能没有做处理
十一、XSS之htmlspecialchars
在皮卡丘平台上输入下面的内容,看一下后端是怎么处理的
输入的内容经过了HTML编码
可以看到 “ " ”,“ > ”和“ < ”都经过了编码,剩下的字符没有,单引号依然可以使用
我们可以构造下面的Payload,我们在Payload前后都添加一个单引号用于闭合 href 中的单引号
十二、XSS常见防范措施
总的原则:输入做过滤,输出做转义
十三、XSS之href输出
构造Payload如下,没有上面被转义的字符
提交后查看源码
此时点击我们的标签就会出现弹窗
十四、XSS之js输出
随便输入一些东西,然后查看一下页面源码
它会把我们的输入放到JS中,然后对这个变量进行判断,然后再输出
我们可以构造一个闭合,先用一个单引号和</script>闭合掉页面中的<script>,然后再插入自己的JS代码
这时候我们的JS也被执行了
这个漏洞的输出点是在JS中,通过用户的输入动态生成了JS代码
十五、XSS常见Payload
参考https://www.cnblogs.com/xuehen/p/4814237.html
【CSRF】
原文:https://www.cnblogs.com/P201721230041/p/12047439.html