Bwapp-Writeup

Injection

1.HTML Injection - Reflected (GET)

1.1 low

源码未进行任何过滤

1
2
3
4
function no_check($data)
{
return $data;
}

便可想到插入xss语句以及其他类型语句
图片.png
查看源码发现输入的语句以及嵌入到源码中
图片.png

1.2 medium

按照上面的方法进行语句插入,发现直接显示源码,查看源码发现进行了html标签过滤
图片.png

1
2
3
4
$input = str_replace("<", "&lt;", $data);
$input = str_replace(">", "&gt;", $input);
$input = urldecode($input);
return $input;

既然对输入的数据进行了编码,那就需要绕过了,对其进行一次url编码不可以,那就对输入的数据进行二次url编码,成功了
测试url:

1
http://192.168.112.129/bWAPP/htmli_get.php?firstname=%253Cscript%253Ealert%2528%2527xss%2527%2529%253B%253C%252fscript%253E&lastname=%253Ca%2520href%253D%2522http%253A%252f%252fwww.baidu.com%2522%253Eclick%253C%252fa%253E&form=submit

图片.png
查看源码,已经成功写入
图片.png

1.3 high

这个使用了==htmlentities()==将所有适用的字符转换为HTML实体,故安全性比较略高
讲解绕过htmlentities
至此,可以发现html注入反射型漏洞也是有很大危害的,可以进行xss攻击、页面篡改等攻击

2.HTML Injection - Reflected (POST)

post的和get型方式一样,不做过多介绍
图片.png

3.HTML Injection - Reflected (URL)

3.1 low

BP抓包,修改host为1.1.1.1
图片.png

3.2 medium

document.write(),动态向页面写入内容
document.URL 返回当前页面或文档的URL

1
$url = "<script>document.write(document.URL)</script>";

3.3 high

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    case "2" :

$url = "http://" . $_SERVER["HTTP_HOST"] . xss_check_3($_SERVER["REQUEST_URI"]);
break;

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);

}

4.