bWAPP靶场之HTML Injection(GET)

0x00 前言

最近想把bwapp通关~~冲鸭!

0x01 测试过程

先随便输入一下,发现输入的名字会输出到页面上
在这里插入图片描述
1.Low
由于会输出输入的名字,我们先尝试一下能不能弹框,OK~~

payload:?firstname=<script>alert(1)</script>&lastname=ruanruan&form=submit

在这里插入图片描述
再尝试引入外链

payload:?firstname=quanquan&lastname=ruanruan&form=submit

在这里插入图片描述
2.Medium
使用Low等级的两个payload,发现都没执行
在这里插入图片描述
在这里插入图片描述
可能过滤替换了一些字符
分析源码可以使用urlencode绕过,由于是在浏览器提交payload,浏览器会对url进行一次解码,所以我们需要对payload进行两次urlencode。payload:

?firstname=%253Cscript%253Ealert%25281%2529%253C%252fscript%253E&lastname=ruanruan&form=submit

在这里插入图片描述
payload:

?firstname=%253Ca%2520href%253D%2522https%253A%252f%252fblog.csdn.net%252fsyy0201%2522%253Equanquan%253C%252fa%253E&lastname=ruanruan&form=submit

在这里插入图片描述
3.High

0x02 源码分析

1.Low
在这里插入图片描述
无任何过滤,直接输出。
2.Medium
关键代码:functions_external.php
在这里插入图片描述
从第92、93行可以知道,该函数使用了str_replace()将<>转换成HTML实体字符。但是在输出的时候又对输出进行了url解码。那么我们就可以利用url编码绕过str_replace的检查。
3.High
在这里插入图片描述
使用了htmlentities()函数将输入转换为 HTML 实体。emmm绕不过

posted @ 2019-12-18 20:28  吃不胖的ruanruan  阅读(459)  评论(0编辑  收藏  举报