bWAPP_HTML Injection

0x00:前言

bWAPPweb安全靶场

0x01:HTML注入

超文本标记语言(HTML)注入有时也被称为虚拟污染。 这实际上是一个由站点造成的攻击,该站点允许恶意用户向其 Web 页面注入 HTML,并且没有合理处理用户输入。 换句话说,HTML 注入漏洞是由接收 HTML 引起的,通常通过一些之后会呈现在页面的表单输入。

1)HTML injection (get)_low

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

2)HTML injection (get)_medium

1.2.1  <h1>Hack</h1>无效

 

 应该对字符<>/ ,检测或过滤了,检测的方法:过滤、替换、编码解码,这里没有做替换,试一下编码解码

试一下URL encode(其他还有很多编码方式base64等)

urlencode("<h1>Hack</h1>")  --->   

 

 结果:没变,说明页面展示的时候,把我输入的内容URLdecode

 

 那我们URLencode两次,他解码后就是一次URLencode的结果

 

 结果注入成功

 

 因为 只进行一次URLencode,浏览器会自动默认 把参数URLdecode一遍,所以和没编码没有区别,两次的话浏览器解码一次,页面展示的时候在解码一次

2)HTML injection (get)_high

......看一下源码吧

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,分不同场景,但是我都试过了还是不行

 

2)HTML injection_post

方法和get一样,只是postget的区别

(3) HTML injection_current url

 

0x02:总结

有点像反射型XSS(一样的?)漏洞修复建议:过滤输入的数据,如<   >   '   "   onclick  on***等;对数据编码,HTML实体编码 JS编码 

猜你喜欢

转载自www.cnblogs.com/liqik/p/12304911.html
今日推荐