第七季极客大挑战writeup和swup web400
php is fun源码审计,感觉我还是比较喜欢做审计的题目,不用脑筋~~ 12345678910111213141516171819<?phpif(isset($_GET) && !empty($_GET)){ $url = $_GET['file']; $path = "upload/".$_GET['path'];}else{ show_source(__FILE__); exit();}if(strpos($path,'..') > -1){ die('SYCwaf!');}if(strpos($url,'http://127.0.0.1/') === 0){ ...
阅读更多
tomcat本地提权(CVE-2016-1240重现分析)
0x00 简单复现漏洞相关描述,请参考链接3。 tomcat本地提权漏洞,准确来说应该是Debian系统给的一个启动脚本有问题。这让我学习到了一种新的漏洞攻击形式。由于之前对shell脚本有所了解,决定通读一下漏洞POC。学习一下漏洞利用知识。 首先,用apt-get安装tomcat6(官方似乎没管tomcat6,依然存在漏洞) 安装并且给tomcat6用户赋予密码和bash: 123sudo usermod -s /bin/bash tomcat6passwd tomcat6su -l tomcat6 运行POC提权 运行链接3中给的POC。重启下tomcat服务,即可获得root shell。 1$ ./ tomcat_CVE-2016-1240.sh /var/lib/tomc ...
阅读更多
pwn 学习总结
0x00 记录下学习过程首先,安天实验室几个pwn专题的实验不错。学习了下,当做入门。 入门之后,找到了练手的好地方:http://pwnable.kr/,这个网站的题目真的很不错。先做简单的,一般都能从网上搜到思路。然后,自己分析写写exp。 接下来,我记录下pwnable.kr上的几个简单题目。 0x01 bof最简单的栈溢出,源码都给了: 123456789101112131415161718#include <stdio.h>#include <string.h>#include <stdlib.h>void func(int key){ char overflowme[32]; printf("overflow me : " ...
阅读更多
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 ...
阅读更多