Injection
1.HTML Injection - Reflected (GET)
1.1 low
源码未进行任何过滤
1 | function no_check($data) |
便可想到插入xss语句以及其他类型语句
查看源码发现输入的语句以及嵌入到源码中
1.2 medium
按照上面的方法进行语句插入,发现直接显示源码,查看源码发现进行了html标签过滤
1 | $input = str_replace("<", "<", $data); |
既然对输入的数据进行了编码,那就需要绕过了,对其进行一次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 |
查看源码,已经成功写入
1.3 high
这个使用了==htmlentities()==将所有适用的字符转换为HTML实体,故安全性比较略高
讲解绕过htmlentities
至此,可以发现html注入反射型漏洞也是有很大危害的,可以进行xss攻击、页面篡改等攻击
2.HTML Injection - Reflected (POST)
post的和get型方式一样,不做过多介绍
3.HTML Injection - Reflected (URL)
3.1 low
BP抓包,修改host为1.1.1.1
3.2 medium
document.write(),动态向页面写入内容
document.URL 返回当前页面或文档的URL
1 | $url = "<script>document.write(document.URL)</script>"; |
3.3 high
1 | case "2" : |