python 判断系统平台 批量挖SRC漏洞的一种打开方式(3)

电脑杂谈  发布时间:2018-01-06 08:07:18  来源:网络整理

代码整体结构:

其中,pocbase/lib/poc_base.py文件是写一些编写payload文件常用到的函数。

3.3.2 编撰payload文件

由于编写payload文件流程都一样,这里拿asp来举例。通常还会有jsp,php,java等不同脚本语言写的cms。比如漏洞:KesionCMS最新版本可下载直接破密码,kesioncms是asp写的cms。漏洞原因可直接访问/KS_Data/KesionCMS9.mdb路径,下载文件到本地。把文件用Easy Access打开,表结构及KS_Admin中数据如图 3-3-2-1 所示:

图 3-3-2-1 表

由图知,用户名为admin 密码为469e80d32c0559f8。凭经验看出密码是经过MD5加密之后存到中,我们在网站#上MD5解密之后得到密码为admin888,如图 3-3-2-2 所示:

图 3-3-2-2 MD5解密图

接下来,尝试编写payload然后找环境来测试编写的payload是否成功。先本地搭建asp运行环境,下载小旋风Asp Web服务器,安装之后开启软件,尝试下载KesionCMS漏洞相应版本到本地,经过测试是v9.5的版本,本地测试漏洞恰好存在。访问链接/KS_Data/KesionCMS9.mdb如图 3-3-2-3 所示:

图 3-3-2-3 访问链接图

这里点击保存把文件下载下来,这边用text文件下载下来会发现mdb文件里面都有Standard Jet DB,所以编写payload时候可以模拟请求获取下载文件读取文件然后查找是否有关键字StandardJet DB。这就是漏洞编写的原理。

编写完之后进行运行是否成功。如图 3-3-2-4 所示:

图 3-3-2-5 运行测试图

这样证明我们的payload文件编写正确了。还需要批量扫描50个网站,查看扫描结果,对验证成功的网站人工验证是否成功,修正并反复这一过程,来提高payload的准确率。

3.4 HTTP请求

Payload的原理是通过工具模拟发送HTTP请求,包括GET请求,POST请求,PUT请求来获取网页源代码,匹配特定字符,来验证漏洞。

HTTP是计算机与网络通信的协议,会给服务器一种浏览器访问的错觉,也就是在请求时候,模拟浏览器请求机制,加上浏览器的请求头[14]。如图 3-4-1 所示:

图 3-4-1 HTTP请求流程图

当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:请求方法URI协议/版本,请求头(Request Header), 请求正文。以下程序为验证漏洞是否存在,模拟请求:

3.5 多线程

多线程通过划分时间来实现,即把时间分成一个个片,每片处理一个线程,所有的线程循环处理,而多处理器可以同时实现多线程[15]。多线程是为了把多项任务同步完成,来提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。简单来说,一个项目要在一天完成总共10个人同时进行,把一个项目细分为两个过程,第一过程划分为相似的10份小任务,都做完之后,又把第二过程分为相似的10份分配小任务作同时进行。python 判断系统平台如图 4-5-1 所示:

图3-5-1 多线程流程图

下面是使用多线程的实例:

四、系统测试与运行 4.1 测试环境

环境要求:Python 2.7.8

Python依赖包:

pocsuite==1.2.6

python-docx==0.7.4


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-58534-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 景莹
      景莹

      中日回到大陆祖国母亲的怀抱

    热点图片
    拼命载入中...