利用xpath爬取edu漏洞列表

  • A+
所属分类:安全闲碎
利用xpath爬取edu漏洞列表

前言


申明:本次测试只作为学习用处,请勿未授权进行渗透测试,切勿用于其它用途!

本文来自Anyyy师傅的投稿,在这里谢谢Anyyy师傅!

EduSrcSelect用了xpath爬取了某edu平台的漏洞列表大学(阿这,主要是正则不会),包括标题、时间、作者。可通过输入cookie、查询页数和查找内容进行查询,可以看看有木有重复吧(应该),下载地址在最底下。

利用xpath爬取edu漏洞列表

Part 1


废话不多说,上图

利用xpath爬取edu漏洞列表

利用xpath爬取edu漏洞列表

效果还阔以嘛

脚本分析:

整体>

利用xpath爬取edu漏洞列表

利用xpath爬取edu漏洞列表

Step1(title)>

该部分包含使用说明,和作者声明。借鉴了佩奇师傅写脚本的格式,可以关注下他的文库(http://wiki.peiqi.tech/)针不戳

利用xpath爬取edu漏洞列表

Step2(start)>

我们先讲讲运行部分,把重要的留在后面。

利用xpath爬取edu漏洞列表

这里先会运行title部分,之后定义cookie值为用户键入的Cookie      “str(input(“xxxxxx”))”,之后会将cookie值代入header中进行用户伪装。

之后定义两个值page1page2作为要查询的起始页和结束页,并用’-’分开 “map(int,input(“xxxxxxx”))” 的方法可使用户输入的值为数字,然后后面会判断page1或者page2是否为0进行报错提示。

最后select值为要查询的关键字,进行标题查询。然后结束会运行下个函数config。

Step3(config)>

利用xpath爬取edu漏洞列表

这里我用了for循环来给i,k定义两个值。

首先先给i定义区间

range(page1-page2),这里要注意的是page1一定要转化为int类型,否则会报错,其次就是page2要比实际输入的值大1,因为range中第二个值会少1。例如range(1,4),实际为1,2,3。

k定的区间为1到15,因为每页显示15个漏洞。

然后用的就是threading线程,如果嫌运行慢的话,可以将time.sleep()的值改小点,不过越快越不稳定。

Step4(core)>利用xpath爬取edu漏洞列表

首先设置目标URL以及header构造(写法参考了HuMoLix师傅,TQL)

先用PoolManager()创建实例,用于处理对象,然后构造header和url以及传参方式

r = http.request(        'GET',        "https://src.sjtu.edu.cn/list/?page="+str(i),        headers= {            'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0",            'Host':"src.sjtu.edu.cn",            'Cookie':"sessionid="+str(cookie)            },        timeout = 4.0        )

header方面我是用burpsuite抓edu登陆后首页的包

利用xpath爬取edu漏洞列表

Cookie上只用sessionid就可以进行身份验证了。

之后用r.data.decode(‘utf-8’,’ignore’)就可以将爬出的内容显示出来了,这里如果不用utf-8解码会出现汉字显示不出来

利用xpath爬取edu漏洞列表

至此爬取网页的部分已经成功,接下来要做的就是将爬取的内容进行筛选我们想要的内容

在讲xpath前,推荐大家chrome安装个xpath helper插件

可以直接在chrome应用市场下载

利用xpath爬取edu漏洞列表

点击xpath helper插件,选取想要的内容,按Shift+X就可以显示内容在整个网页的位置了

利用xpath爬取edu漏洞列表

这里只用tr的部分,前面的都可以忽略不要(注意前面删除好要在”/tr”前加/)

利用xpath爬取edu漏洞列表

利用xpath爬取edu漏洞列表

有了目标的path后,一切都好办辽。

先用etree.HTML(html)将html的字符串解析为HTML文档对象,将字符串转变成_Element对象。

再用lxml中_element的xpath来将文本内容转化为值

利用xpath爬取edu漏洞列表

这里要注意的是在我们原有的路径上要加上”/text()”否则识别不出来,其次是用normalize-space将爬取的内容中的空格去除,保证文本准确性。然后根据不同漏洞的标题、时间、作者中”[]”的变化,用我们之前定义的’str(k)’来代替。

最后出来的就是完整的标题、时间和作者了。

3)主要部分完成了剩下的就是修饰了。接下来是查询部分,这里我用了if来判断用户输入的内容是否在标题中存在,若存在则输出”页码”、“时间”、“标题”、“作者”,并创建一个在桌面的文本写入漏洞列表(可更改路径),若没有则输出”未找到目标”。颜色代码挺好用的~  “33[xxm(text)33[0m”

利用xpath爬取edu漏洞列表

完工。

PS:

    本人python初学者,写了挺久的吧,哪些不好的地方师傅们可以指点下,我可以改进下。Cookie要登录后获取,获取方法我在脚本运行说明写了~本来我是打算通过输入账号密码的形式获取的,结果发现edu的验证码很奇怪获取不过来哈哈(还是我太菜了)然后不输入cookie也是可以的,就是未登录和登录后显示的标题是不一样。还做了个查询自己漏洞状态的脚本PassSelect,我个人感觉帮助不大就不详细讲了,EduSrcSelect和PassSelect脚本的地址附下:

EduSrcSelect:

https://pan.baidu.com/s/1VzcPESM6enj3G_yrXAlB5w
提取码:f77r

PassSelect:   

https://pan.baidu.com/s/1bjvWEX-Ed8wPb5-WA9rTW
提取码:fvqp

如果对你有帮助的话
那就长按二维码,关注我们吧!

利用xpath爬取edu漏洞列表
利用xpath爬取edu漏洞列表


利用xpath爬取edu漏洞列表

利用xpath爬取edu漏洞列表  实战 | 简单的sql注入与脚本的编写

利用xpath爬取edu漏洞列表  记一次相对完整的渗透测试

利用xpath爬取edu漏洞列表  实战 | 一次简单的信息收集到getshell的过程

右下角求赞求好看,喵~


本文始发于微信公众号(F12sec):经验分享 | 利用xpath爬取edu漏洞列表

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: