**
HTML Injection - Reflected (GET)
**
low:

低级漏洞中,输入数据没有做校验
First name: <script>alert( 'xss' )</script>
Last name: <script>alert( 'xss' )</script>
出现xss即为成功。
medium
和low一样,但发现被全部显示
抓包,
会发现符号<>均被编码
0,1,2分别对应三个等级
找见对应的/bWAPP/bwapp/htmli_get.php文件
三个等级分别要进行不同的检测
还会发现要调用functions_external.php文件


$input = urldecode($input);
这里使用了urldecode函数,对字符串进行URL解码,返回的是已解码的字符串
所以可以在输入框输入编码后的代码

high
同medium操作一样,也被全部显示

抓包,
会发现和medium一样<>均被编码
但是如果尝试在输入框输入编码后的代码并不能成功

htmlspecialchars() 函数把预定义的字符&," ,’ ,<,> 转换为 HTML 实体,是安全的
HTML Injection - Reflected (POST)
操作同HTML Injection - Reflected (GET)一样,只不过是成了post方式。
HTML Injection - Reflected (Current URL )
low:
在url中构造语句

尝试抓包

将被编码的部分改成正常的
解题成功。
medium&high

发现同low级别的一样,但当尝试抓包修改为正常的并不能成功,查看源码
找见这个htmli_ current_ url.php文件后,发现这样的一段代码
还会发现在case"2"时要进行xss_check_3的检测
(xss_check_3见HTML Injection - Reflected (GET)的high级别)

HTML Injection - Stored (Blog)
low:
发现有输入框,尝试一下xss注入
medium

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

查看 functions_external.php 文件

可以看到case"1"或case"2"都要进行sqli_check_3检测
function sqli_check_3($link, $data)
{
return mysqli_real_escape_string($link, $data);
}
mysqli_real_escape_string就是要转义在SQL语句中使用的字符串中的特殊字符
PHP mysqli_real_escape_string() 函数
iFrame Injection
iframe是可用于在HTML页面中嵌入一些文件(如文档,视频等)的一项技术。对iframe最简单的解释就是“iframe是一个可以在当前页面中显示其它页面内容的技术”
通过利用iframe标签对网站页面进行注入,是利用了HTML标签,实际上就是一个阅读器,可以阅读通过协议加载的活服务器本地的文件、视频等




low

没有对参数进行过滤,可以控制param标签的输入

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会在数据库查询中需要引用的字符(’,",\)前返回一个反斜杠字符串进行构造

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()函数会把预定义的字符(&,’,",<,>)转换为 HTML 实体
LDAP Injection (Search)
LDAP 全英文:Lightweight Directory Access Protocol,翻译过来就是轻量级的目录访问协议。其实就是访问目录,浏览目录。有很多企业存储一些数据信息,例如部门信息,部门里成员的信息,公司的可用设备信息等,这些信息单独放在类似于网站的那种数据库中的话,会显的有点大材小用,而把它们放在目录中,文本中最合适。好比在文档中搜索指定的内容,在目录中搜索指定的文件一样。 LDAP 也有自己指定的语法,也可理解为它是一个存储信息的数据库,为了搜索方便,很多网站提供了其查询的接口,和普通的搜索框无异,对于指定的搜索内容,在没有严格过滤的情况下,便可以造成LDAP 注入。

尝试


Mail Header Injection (SMTP)
通常的做法是网站实施联系表单,反过来将合法用户的电子邮件发送给消息的预期收件人。大多数情况下,这样的联系表单将设置SMTP标头From,Reply-to以便让收件人轻松处理联系表单中的通信,就像其他电子邮件一样。
不幸的是,除非用户的输入在插入SMTP头之前被验证,否则联系表单可能容易受到电子邮件头插入(也称为SMTP头注入)的攻击。这是因为攻击者可以将额外的头部注入到消息中,从而指示SMTP服务器执行与预期不同的指令。


OS Command Injection

www.nsa.gov;dir
www.nsa.gov&&dir
原理:在DNS查询之后再执行dir命令
medium

commandi_check_1是把&和;替换了,还可以使用|
构造
www.nsa.gov | dir
high
escapeshellcmd()函数用来跳过字符串中的特殊符号,防止恶意用户耍花招破解服务器系统
OS Command lnjection - Blind

盲注就是注入后并不会返回信息,要根据反应时间判断命令是否成功执行
输入 127.0.0.1
输入 127.0.0.1&&dir
PHP Code Injection

low:
medium&high
使用了htmlspecialchars函数无法绕过

Server-Side Includes (SSI) Injection
SSI是英文"Server Side
Includes"的缩写


1589

被折叠的 条评论
为什么被折叠?



