wargame.kr 题目writeup
adm1nkyj链接: http://wargame.kr:8080/adm1nkyj/ 这题id和pw参数存在注入,关键在于不知道表的列名,如何绕过得到其中的pw和flag数据? 1234if(preg_match("/information|schema|user/i", $id) || substr_count($id,"(") > 1) exit("no hack");if(preg_match("/information|schema|user/i", $pw) || substr_count($pw,"(") > 1) exit("no hack");mysql_query("SELECT * FROM findflag_2 WHERE $id_column=' ...
阅读更多
java反序列化工具ysoserial分析
0x00 前言由于乌云知识库暂时不能看了,把我之前投稿的文章在博客上发一下。 关于java反序列化漏洞的原理分析,基本都是在分析使用Apache Commons Collections这个库,造成的反序列化问题。然而,在下载老外的ysoserial工具并仔细看看后,我发现了许多值得学习的知识。 至少能学到如下内容: 不同反序列化payload玩法 灵活运用了反射机制和动态代理机制构造POC java反序列化不仅是有Apache Commons Collections这样一种玩法。还有如下payload玩法: CommonsBeanutilsCollectionsLogging1所需第三方库文件: commons-beanutils:1.9.2,commons-collections:3 ...
阅读更多
python urllib SSRF攻击Redis
0x00 测试环境docker环境: 12redis_3.2.1:image: redis:3.2.1 容器内网ip为192.168.0.7,直接内网访问6379端口。 0x01 如何攻击Redis两种方案,具体看参考链接。原理都是一样的,写文件到目标目录。 1234CONFIG SET dir /tmpCONFIG SET dbfilename evil //这一步可以将db设置为/tmp/evil,可以控制文件里面的部分数据了。SET foo barSAVE 上述Redis命令可以使key-value数据保存在/tmp/evil文件中,也就是我们可以控制里面的部分内容: 0x02 Python urllib HTTP头注入简单使用一下代码测试访问url: 1234import url ...
阅读更多
CTF题目相关漏洞总结(CBC模式加密,opcache,LD_PRELOAD)
0x00 php7 opcache执行 PHP 代码1. 环境配置文章介绍:http://drops.wooyun.org/web/15450http://blog.gosecure.ca/2016/04/27/binary-webshell-through-opcache-in-php-7/ 使用docker拉取php:7.0.8-apache镜像,配置使用opcache。php7默认安装了opcache,这里只需要修改下php.ini文件: 123456[opcache]zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20151012/opcache.soopcache.enable=1opcache.valid ...
阅读更多
乌云puzzle3 思路记录总结
0x00 线性同余算法计算随机数看懂这篇文章:http://www.mscs.dal.ca/~selinger/random/ 关键点在: 源码中先生成6位secret_key,再生成的随机token。我们可以逆向算一算: 1o[i] = o[i+31] - o[i+28] 于是我们只要生成一个超过32位的随机数连续序列,就可以计算出前面的随机数token了。由于可能存在需要加1的情况,需要简单的爆破。 首先用同一个session生成一段随机数序列: 观察看到下列源码,发现每次csrf_token 用掉之后,会再次生成一个,于是可以多生成几个随机数序列。 123456789function check_csrf_token(){ if(empty($_SESSION['CS ...
阅读更多
调试S2-033到S2-037分析体会
0x00 背景最近出了两个Struts漏洞,S2-032和S2-037。 都是官方插件REST出了问题,zone里面讨论也很热烈。我只代表个人观点和理解,如果理解有误,请批评指正。顺便聊聊里面的技术。 首先,看两个漏洞的描述: S2-033(CVE-2016-3087): Remote Code Execution can be performed when using REST Plugin with ! operator when Dynamic Method Invocation is enabled. S2-037: Remote Code Execution can be performed when using REST Plugin.It is possible to p ...
阅读更多
SSRF利用gopher协议攻击 fcgi
0x00 环境配置 安装Net_Gopher 在pecl下载Net_Gopher,然后改36行: 1function_entry ======> zend_function_entry 原因: 新版php将类型接口改变了,需要改下源码。 https://bugs.php.net/bug.php?id=61479 curl版本重新安装 倒腾半天,在SSRF测试时,对curl版本有所限制。所以需要重新编译安装。参考: http://pavelpolyakov.com/2014/11/17/updating-php-curl-on-ubuntu/: 1234apt-get remove -y curl && apt-get autoremove -y./config ...
阅读更多
phpinfo lfi 上传shell
0x00 基本原理建议阅读参考文章1的pdf,基本都是根据那篇文章进行分析的,这里单纯记录下我实验过程。 任意php文件都会处理一个上传请求,上传文件都会被暂时存储在一个临时目录下面。直到php页面完全处理完请求。 In particular he notes that if file_uploads = on is set in the PHP configuration file, then PHP will accept a file upload post to any PHP file. He also notes that the upload file will be stored in the tmp location, until the requested PHP pa ...
阅读更多
docker remote api 未授权访问
0x00 前言学习下这个Docker remote api漏洞,具体细节请参考http://drops.wooyun.org/papers/15892。 这里记录下我的实验过程,值得学习~~ 0x01 环境配置先关闭docker,然后开启: 12sudo service docker stopsudo docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 绑定Docker Remote Api在指定端口(这里是2375),可以自行测试。 参考API规范进行渗透:https://docs.docker.com/engine/reference/api/docker-remote-api-v1.23/ 操作Dock ...
阅读更多
wechall writeup(1)
order by query PHP看关键代码: 1234567if (!in_array($orderby, $whitelist)) { return htmlDisplayError('Error 1010101: Not in whitelist.');}$orderby = $db->escape($orderby);$query = "SELECT * FROM users ORDER BY $orderby $dir LIMIT 10"; 这里有个php trick: 12345$names = array(1 => 'Username', 3 => 'Apples', 4 => 'Bananas', 5 => ' ...
阅读更多