文章目录
docker搭建遇到的问题
数据库未建立
Connection failed: Unknown database 'bWAPP'
搭建完毕打开的时候,会提示这么个东西,我们只需要打开install.php
就能成功建立
登录
默认用户名bee、密码bug
HTML Injection - Reflected (GET)
low
先说下htmli和xss的区别,xss插入的是js代码,htmli插入的则是html标签,我觉得原理是一样的,无非是细分了一下实现插入的代码之间的差别,htmli可以用于误导用户,并且欺骗它们来提交一些敏感信息,或者浏览恶意网站
选择使用<script>alert(1)</script>
进行尝试注入
发现成功
medium
这里我选择查看源代码来了解做法。但是会有这么几个函数
这里在题目文件是没有的。
函数no_check()、xss_check_1()
这些的定义全在另一个functions_external.php中,可以自行前往查看
好,我们继续看
中等难度是这样过滤的
他把尖括号转译成实体,最后输出的时候进行url编码,那么我们,直接输入url编码后的语句
%3cscript%3ealert(1)%3c/script%3e
即可绕过
high
这里使用了htmlentities()函数
进行过滤,把字符转换为 HTML 实体
ENT_QUOTES - 编码双引号和单引号
emm,绕不过
HTML Injection - Reflected (POST)
low
no_check,没有检测
直接采用<script>alert(1)</script>
medium and high
同上(方法于get一样)
HTML Injection - Reflected (URL)
low
经过翻阅代码可知
我们注入脚本
?id=<script>alert(1)</script>
会发现,他在发送到url之前就给我们进行了url编码
因此,我们需要用burp抓包,修改成?id=<script>alert(1)</script>
成功
medium
和上面的方法一样,抓包,修改注入,只不过他换成了js的写入,本质上是没有变化的
high
转译成实体,好了,无法绕过
HTML Injection - Stored (Blog)
low
这里有新函数
mysql_real_escape_string()
介绍
此函数用来对字符串中的特殊字符进行转义, 以使得这个字符串是一个合法的 SQL 语句。 传入的字符串会根据当前连接的字符集进行转义,得到一个编码后的合法的 SQL 语句。
会被进行转义的字符包括: NUL (ASCII 0),\n,\r,\,’," 和 Control-Z.
我们直接<script>alert(1)</script>
medium
这里采用这种过滤
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符是:
单引号(’) 双引号(") 反斜杠(\) NULL
这样我们就没法用alert绕过
high
放弃绕过