jarvisoj-web-wp

Port51

这是一道pctf的原题,,显然要用公网ip端口进行访问,这时候用到了curl命令,使用curl –local-port http://web.jarvisoj.com:32770/就可以得到flag,但是貌似服务器出了点儿问题,所以不弹flag了

LOCALHOST

,这个题目和上面一道题目差不多,都很基础,用火狐的代理,直接就可以了,

Login

,一开始进去没什么思路,点开消息头以后,发现hint,然后构造绕过,==不知道怎么构造绕过,百度了一下这个语句,直接出md5加密后的sql注入,利用已给的ffifdyop,提交得到flag.

神盾局的秘密

这道题目,可以称得上是一道好题了,查看发送的包,发现有,我们对base64的密文进行解密,得到shield.jpg,猜测是文件读取,用index.php做测验,果然出现问题了,读取源码
 
  

        require_once('shield.php');

        $x = newShield();

        isset($_GET['class'])&& $g = $_GET['class'];

        if(!empty($g)) {

               $x =unserialize($g);

        }

        echo$x->readfile();

?>,知道还跟shield.php有关,再读取shield.php,得到关键代码, 
  

        //flag is inpctf.php

        class Shield{

               public$file;

               function__construct($filename = '') {

                       $this-> file = $filename;

               }

然后构造php反序列提交,class=O:6:”Shield”:1:{s:4:”file”;s:8:”pctf.php”;},在查看器里看到flag,

In aMess

这是一道经典的代码审计题目,结合了几个危险函数的绕过问题,先查看源码,得到,访问得到,这就是代码审计绕过了,这道题集多种奇淫巧技于一身,这里是时候好好回顾总结一波了,先从简单的开始说,$id=0这个绕过,用php的弱类型就可以了,构造id=0a就可以绕过了,再说下一个php的弱类型,是基于eregi函数的弱类型,eregi函数的弱类型有几种绕过手段,之前在网上看到有两种,现在不知道为什么就只能找到一种了,就是%00的绕过,然后长度大于5,%00之后的第一个数字是4,还剩下一个绕过,这个技巧性非常高,这里说两种做法,第一种是通过php伪协议,利用php://input流,post一个字符串,这时候post字符串被a截获,就成功实现了,还有一种比较麻烦的绕过方式,就是在自己的服务器上放一个名字随便的文件,内容就是那句话,把a赋值成为该文件的ip目录,但是这里值得注意的一点就是对.进行了过滤,那么,仔细考虑一下,ip可以转换成10进制,转换方式就是a.b.c.d可以转换成a*256^3+b*256^2+c*256^1+d,这样也可以绕过,在绕过所有的条件之后得到一个ComeON!!! {/^HT2mCpcvOLf},猜测可能是一个文件,直接访问,得到http://web.jarvisoj.com:32780/%5eHT2mCpcvOLf/index.php?id=1,看到id,猜测是sql注入,这道题目也算是sql里面比较经典的一道题目,过滤了空格等字段,不过空格可以用/*1*/绕过,unoin可以用重写绕过,然后爆破最后就可以得到flag

Flag在管理员手里

这道题跟之前在中国矿业大学做得一道题一样,很容易就猜到是hash拓展攻击,但是并不知道攻击如何构造,猜测会有源码泄露,或者是文件备份,swo,swp试了都不行,最后php~下载源码,这里也积累一个小小的姿势,对于这种文件备份的题目,在下载备份文件之后,可以用vim –r文件进行恢复,(ps:不用看乱七八糟的代码了,恢复也是有前提的,必须是.swp,.swo等标准vim备份文件),看这个题目,发现跟之前见过做过的hash拓展不一样,于是各种找找,https://blog.skullsecurity.org/2014/plaidctf-web-150-mtpox-hash-extension-attack,这是国外的一个web大神写的比较详细的介绍。。本智障英语水平不高,也就看个大概,后来在bendawang师傅的调教下,终于搞懂了hash拓展攻击的原理,这样,我们用国外大神写的脚本,就可以进行爆破了,但是这个题目的逻辑是要让我们用逆序的序列化伪造逆序的hash值作为正向的登陆,所以登陆的时候还要把role改成正序

Chopper

这道题是iscc的一道原题,看了别人的wp才想到的。。首先进去有个管理员登陆,点进去,发现forbidden了,自己做的时候就直接退出了,看了别人的wp才知道要看源码,提示管理员的ip地址,在访问Index.php的时候留了个心眼,用burp抓包,发现有一个,好像是文件访问,于是构造一下访问,还是forbidden,访问admin的ip试一下,也不行,联想一下,会不会是跳转访问,proxy是代理,那么就是了,远程登录admin的ip跳转访问,访问admin下的robots.txt,得到想要的东西,,再访问trojan.php.txt,发现是一大串乱七八糟的东西,,直接扔到phpstorm里面跑一下,,从报错里面找到了我们想要的key,360,然后进行远程命令执行,,得到flag.

Easygallery

进去以后看submit,是个文件上传,这时候注意访问的url是get类型,而且是文件包含,但是省略了后缀名,猜测应该是上传一个一句话然后文件包含,这里同时总结一下上传一句话的手法:

1、 直接上传,在1.php文件里写入一句话

2、 在1.php中写入一句话,然后重命名为1.jpg或1.png

3、 在1.php中写入一句话,然后重命名为1.jpg,然后再压缩为1.zip,然后再重命名为1.png或者1.jpg

4、 找一个jpg或者png的图片文件,上传时,直接在文件末尾加上一句话

5、 找一个jpg或者png的图片文件,在另一个文件里写入一句话,然后再windows下用copy 1.jpg/b+1.php/a 2.jpg  命令语句,产生一句话

再总结一下一句话的利用包括写法,上传的文件一定要记住以下几点:1.jpg中的php代码可执行,2.zip等压缩包中的代码可以通过伪协议3.绕过内容检测,绕过方式很多%00截断,这里是一种新的思路,也是在这里积累一下,,然后上传,然后记住返回的id,,然后再用文件包含,默认会加上php的后缀,所以只需要%00截断就可以了,,显然这里没有包含,,有包含,但是并没有回显,在本地测试一下一句话,一句话写错了。。修改一句话,然后上传,,得到flag

Api调用

这个用到了xxe注入的知识点,现在还没搞明白什么时候可以用xxe。。先留个爪

直接给了源码,看开头的部分,感觉有点儿像反序列化,然后这里有两个自定义的方法,我们最后的目的就是要通过调用__destruct()方法,然后执行命令,这个方法是在类被销毁的时候调用的,所以,要构造这样一个类的序列化,但是怎么上传入函数呢?看了wp知道,这个题目的关键在开头的部分,用到了php处理器的session序列化,《PHP Session 序列化及反序列化处理器设置使用不当带来的安全隐患》,这原本是在乌云上的一篇文章,现在可以通过https://gist.github.com/chtg/f74965bfea764d9c9698,查看,这里对php的Session处理器带来的安全问题有比较详细的介绍,查看phpinfo();通过这个url就可以查看phpinfo的信息了,,关键的问题就出在这里,对应文章中所讲的第一种问题,就是,反序列化存储session数据时使用的处理器和序列化时使用的处理器不同,这会导致数据无法正确反序列化,这里提到,可以伪造数据,通过注入‘|’字符伪造对象的序列化数据,实例化对象,这里的session.auto_start=off,然后对照给出的问题解决方案,进行伪造session,但是后来看到http://www.91ri.org/15925.html,这篇文章中提到,php版本的问题,在php5.6.13版本之后的的处理模式与之前大有不同,所以,这里不能用乌云那篇文章上给的解法,session.upload_progress.enabled这个选项是开着的,所以可以通过本地进行上传伪造,http://php.net/manual/en/class.sessionhandlerinterface.php,官方的文档给出了这个问题的利用,这样,根据这个hint,就可以提交正确的poc了。然后再根据根目录,进行访问,最后找到目标文件,进行文件内容读取。

WEB

这道题目是有点儿脑洞的一道题目,首先看源码,调用了jquery,说明是ajax,把源码全都复制下来,说明会有checkpass.json这个文件,,看过wp以后才知道,这是5*5矩阵,利用python里的模块,http://blog.csdn.net/zhihaoma/article/details/51002742,这篇文章对怎么利用python模块进行运算进行了详细的介绍,算出结果提交即可。

61dctf-admin

这道题是校赛的题目,在robots.txt文件里,有文件,访问,是guest,然后想了一下,如果在这里有一个改包就好了,,果然有,抓包改包即可

61dctf-babyphp

这是16年csaw的一道web题,首先,在有hint,显然要用到git源码泄露,用githack,下载源码,,这里就是关键源码,这里的漏洞函数就是assert(),补全为,bool assert(mixed $assertion[,string $description])如果assertion是字符串,他会被assert()当做php代码执行。这里直接闭合单引号,加入执行函数system()即可,构造file=’ || system(‘ls -al’); ’然后修改命令,最后读取flag.php即可

你可能感兴趣的:(ctf,web)