【bWAPP】 HTML Injection (HTML注入)

admin 2024年12月16日13:31:31评论3 views字数 3544阅读11分48秒阅读模式

我们都是在一条铺满荆棘的新路上摸索着前行,碰个鼻青眼肿几乎不可避免,而问题在于,我们能不能在这条路上跌倒之后,爬起来继续走下去。

HTML Injection - Reflected (GET)

get方式的html代码注入

漏洞url:http://range.anhunsec.cn:82/htmli_get.php

Level: low

低级漏洞中,输入数据没有做校验,不经任何处理地接受用户数据

输入payload:

First name:<h1>hello</h1>

Last name:<h1>test</h1>

【bWAPP】 HTML Injection (HTML注入)

或者输入payload:

<a href="https://www.baidu.com">baidu</a>

可跳转到百度页面

【bWAPP】 HTML Injection (HTML注入)

或者输入payload:<script>document.write(document.URL)</script>

document对象 :代表整个HTML 文档,可用来访问页面中的所有元素

document.URL:设置URL属性从而在同一窗口打开另一网页

document.write():动态向页面写入内容

【bWAPP】 HTML Injection (HTML注入)

或者输入payload:<script>alert(document.cookie)</script>,弹cookie

【bWAPP】 HTML Injection (HTML注入)

或者输入payload:<script>alert(/xss/)</script>,弹xss

【bWAPP】 HTML Injection (HTML注入)

Level: medium

输入low级别的payload:<script>alert(/xss/)</script>,发现被全部显示

【bWAPP】 HTML Injection (HTML注入)

抓包,会发现/)<符号均被编码

【bWAPP】 HTML Injection (HTML注入)

0,1,2分别对应三个等级,可以查找对应的/bWAPP/bwapp/htmli_get.php文件,三个等级分别要进行不同的检测

【bWAPP】 HTML Injection (HTML注入)

中级漏洞中,黑名单机制,转义了部分危险数据

【bWAPP】 HTML Injection (HTML注入)

这里使用了urldecode函数,对字符串进行URL解码,返回的是已解码的字符串

所以可以在输入框输入编码后的代码,可以通过URL编码绕过

First name: %3Ch1%3Ehello%3C/h1%3E

Last name: %3Ch1%3Eworld%3C/h1%3E

【bWAPP】 HTML Injection (HTML注入)

输入部分转义数据,payload为:

%3ca+href%3d%27https%3a%2f%2fwww.baidu.com%27%3ebaidu%3c%2fa%3e

【bWAPP】 HTML Injection (HTML注入)

Level: high

输入medium级别的payload:%3ca+href%3d%27https%3a%2f%2fwww.baidu.com%27%3ebaidu%3c%2fa%3e,发现被全部显示

【bWAPP】 HTML Injection (HTML注入)

高级漏洞中,使用了htmlspecialchars()函数过滤,把预定义的字符&," ,’ ,<,> 转换为 HTML 实体,是安全的,输入的代码没有被执行, 不可绕过

【bWAPP】 HTML Injection (HTML注入)

HTML Injection - Reflected (POST)

漏洞url:http://range.anhunsec.cn:82/htmli_post.php

操作同HTML Injection - Reflected (GET)一样,只不过是成了post方式。

输入payload:

First name:<h1>hello</h1>

Last name:<h1>test</h1>

【bWAPP】 HTML Injection (HTML注入)

得到这样的结果

【bWAPP】 HTML Injection (HTML注入)

HTML Injection - Reflected (Current URL )

漏洞url:http://range.anhunsec.cn:82/htmli_current_url.php

Level: low

正常情况下显示如下

【bWAPP】 HTML Injection (HTML注入)

由于url中输入自动转义成urlcode,在burp中还原成原始字符即可

构造url:http://range.anhunsec.cn:82/htmli_current_url.php?a=<script>alert('xss')</script>

【bWAPP】 HTML Injection (HTML注入)

burp抓包,将编码部分改成正常的

【bWAPP】 HTML Injection (HTML注入)

会看到弹出xss

【bWAPP】 HTML Injection (HTML注入)

Level:medium&high

尝试抓包修改为正常的并不能成功

【bWAPP】 HTML Injection (HTML注入)

查看源码

【bWAPP】 HTML Injection (HTML注入)

找到htmli_ current_ url.php文件后,发现这样的一段代码,发现在case"2"时要进行xss_check_3的检测

(xss_check_3见HTML Injection - Reflected (GET)的high级别)

【bWAPP】 HTML Injection (HTML注入)

HTML Injection - Stored (Blog)

漏洞url:http://range.anhunsec.cn:82/htmli_stored.php

Level:low

【bWAPP】 HTML Injection (HTML注入)

发现有输入框,尝试一下xss注入,输入payload:<script>alert(/xss/)</script>,弹xss

【bWAPP】 HTML Injection (HTML注入)

Level:medium

【bWAPP】 HTML Injection (HTML注入)

这次虽然显示已经添加,但是并没有弹窗,看源码

【bWAPP】 HTML Injection (HTML注入)

可以看到case"1"或case"2"都要进行sqli_check_3检测

function sqli_check_3($link, $data){    return mysqli_real_escape_string($link, $data);}

PHP中的mysqli_real_escape_string()函数就是要转义在SQL语句中使用的字符串中的特殊字符

iFrame Injection

漏洞url:http://range.anhunsec.cn:82/iframei.php?ParamUrl=robots.txt&ParamWidth=250&ParamHeight=250

iframe是可用于在HTML页面中嵌入一些文件(如文档,视频等)的一项技术。对iframe最简单的解释就是“iframe是一个可以在当前页面中显示其它页面内容的技术”

通过利用iframe标签对网站页面进行注入,是利用了HTML标签,实际上就是一个阅读器,可以阅读通过协议加载的活服务器本地的文件、视频等

Level:low

【bWAPP】 HTML Injection (HTML注入)

我们这里发现,它包含了一个robots.txt的文件,我们试试其他的

构造url:ParamUrl=../admin/phpinfo.php&ParamWidth=250&ParamHeight=250

【bWAPP】 HTML Injection (HTML注入)

查看源码

【bWAPP】 HTML Injection (HTML注入)

没有对参数进行过滤,可以控制param标签的输入,构造url:ParamUrl=https://www.baidu.com&ParamWidth=250&ParamHeight=250

【bWAPP】 HTML Injection (HTML注入)

Level:medium

查看源码

function xss_check_4($data){  // addslashes - returns a string with backslashes before characters that need to be quoted in database queries etc.  // These characters are single quote ('), double quote ("), backslash () and NUL (the NULL byte).  // Do NOT use this for XSS or HTML validations!!!  return addslashes($data);}

可以看出medium不能控制paramurl的输入,所以只能通过控制ParamHeight和ParamWidth来实现注入

大体意思就是addslashes会在数据库查询中需要引用的字符(’,",)前返回一个反斜杠字符串进行构造

构造url:ParamUrl=robots.txt&ParamWidth=250"></iframe><script>alert(/xss/)</script>&ParamHeight=250

【bWAPP】 HTML Injection (HTML注入)

Level:high

查看源码

function xss_check_3($data, $encoding = "UTF-8"){  // htmlspecialchars - converts special characters to HTML entities      // '&' (ampersand) becomes '&amp;'  // '"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set  // "'" (single quote) becomes '&#039;' (or &apos;) only when ENT_QUOTES is set  // '<' (less than) becomes '&lt;'  // '>' (greater than) becomes '&gt;'    return htmlspecialchars($data, ENT_QUOTES, $encoding);}

htmlspecialchars()函数会把预定义的字符(&,’,",<,>)转换为 HTML 实体

文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

原文始发于微信公众号(儒道易行):【bWAPP】 HTML Injection (HTML注入)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月16日13:31:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【bWAPP】 HTML Injection (HTML注入)https://cn-sec.com/archives/3509395.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息