标签:odi ase 区别 family 解码 post fun 标签 get
bWAPPweb安全靶场
超文本标记语言(HTML)注入有时也被称为虚拟污染。 这实际上是一个由站点造成的攻击,该站点允许恶意用户向其 Web 页面注入 HTML,并且没有合理处理用户输入。 换句话说,HTML 注入漏洞是由接收 HTML 引起的,通常通过一些之后会呈现在页面的表单输入。
1.1.1 输入两个名字,页面出现用户输入的东西
1.1.2网页地址为:
更改参数,low等级的没有对输入的内容有任何检测
结果:
1.1.3 或者 firstname 改为 <a href=http://www.baidu.com>点这里到百度</a>
<a>标签的href 属性规定链接的目标
结果:
firstname=<script>alert(document.cookie)</script> 可以获取用户cookie
1.2.1 <h1>Hack</h1>无效
应该对字符<>或 / ,检测或过滤了,检测的方法:过滤、替换、编码解码,这里没有做替换,试一下编码解码
试一下URL encode(其他还有很多编码方式base64等)
urlencode("<h1>Hack</h1>") --->
结果:没变,说明页面展示的时候,把我输入的内容URLdecode了
那我们URLencode两次,他解码后就是一次URLencode的结果
结果注入成功
因为 只进行一次URLencode,浏览器会自动默认 把参数URLdecode一遍,所以和没编码没有区别,两次的话浏览器解码一次,页面展示的时候在解码一次
......看一下源码吧
function xss_check_3($data, $encoding = "UTF-8") { // htmlspecialchars - converts special characters to HTML entities // ‘&‘ (ampersand) becomes ‘&‘ // ‘"‘ (double quote) becomes ‘"‘ when ENT_NOQUOTES is not set // "‘" (single quote) becomes ‘‘‘ (or ‘) only when ENT_QUOTES is set // ‘<‘ (less than) becomes ‘<‘ // ‘>‘ (greater than) becomes ‘>‘ return htmlspecialchars($data, ENT_QUOTES, $encoding); }
有一个htmlspecialchars()函数,百度一下
不会绕过~~~
知乎上有回答的https://www.zhihu.com/question/27646993,分不同场景,但是我都试过了还是不行
方法和get一样,只是post和get的区别
有点像反射型XSS(一样的?)漏洞修复建议:过滤输入的数据,如< > ‘ " onclick on***等;对数据编码,HTML实体编码 JS编码
标签:odi ase 区别 family 解码 post fun 标签 get
原文地址:https://www.cnblogs.com/liqik/p/12304911.html