博文

目前显示的是 八月, 2019的博文

X-NUCA 2019 Ezphp题目writeup

图片
0x00 关于这道题          这道题出现在2019年X-NUCA CTF中,是最简单的web题,也是我唯一能做的web题。不过这个简单是相对的简单,实际上真还算挺难的了,里面的姿势在实际渗透测试中也可能用到,所以写篇文章记下也不算亏 0x01 题面 <?php     $files  =  scandir ( './' );     foreach( $files  as  $file ) {         if( is_file ( $file )){             if ( $file  !==  "index.php" ) {                  unlink ( $file );             }         }     }     include_once( "fl3g.php" );     if(!isset( $_GET [ 'content' ]) || !isset( $_GET [ 'filename' ])) {          highlight_file ( __FILE__ );         die();     }      $content  =  $_GET [ 'content' ];     if( stristr ( $content , 'on' ) ||  stristr ( $content , 'html' ) ||  stristr ( $content , 'type' ) ||  stristr ( $content , 'flag' ) ||  stristr ( $content , 'upload' ) ||  stristr ( $content , 'file' )) {         echo  "Hacker" ;         die();     }      $filename  =  $_GET [ 'filename' ];     if( preg_match ( &

2019中关村杯show_me_your_image题目writeup

图片
0x00 关于这道题          这道题出现在2019年中关村杯CTF,难度较大,值得一看 0x01 题面          这题打开就是个上传界面,干干净净,没有什么HINT可以看         0x02 上传          首先上传正常文件,寻求上传的文件地址,但是服务器只返回一个session回来,再退回主界面发现上传的东西会在 /img.php?name=<???>中显示出来。          尝试改后缀为fuck,之所以我改成fuck是想要测试服务器是否是白名单机制的,即只接收图片格式而不接收其它任何格式。因为如果服务器是黑名单机制就暗示我们要绕开它上传,而白名单限制很死,绕过往往是不可能的,只能另寻它途。很不幸这次就是白名单的。          接着再直接把webshell开为jpeg后缀看看能不能利用img.php可能存在的文件包含漏洞,失败          尝试解析漏洞,失败          暴力扫目录扫php查看有没有别的PHP,一无所获。之所以扫目录是因为之前有题就是藏个phpinfo在那儿,暗示利用Imagick漏洞进行攻击的          看起来上传Getshell这条路被堵死了。泪,流了下来 0x03 发现          session长得很奇怪,有一种...说不出的眼熟,拿去base64解密居然解了部分,后面解不开的是一个.后面的东西,解密出来了有个不完整的JSON,其中包含了一个叫b的参数,这个参数Base64解码之后就是代入img.php的name,这熟悉的客户端session,让我想起了Flask的session,难道...难道这个其实是Flask伪装的?       (PS:在下午主办方给了Hint之后,不需要能够发现session眼熟也能知道是Base64,但最好还是别过多依赖Hint,解码勤快点,万一下次不给Hint呢)          我向来是不惮以最坏的恶意来揣测出题人的 ,然而我还不料,也不信竟会下劣凶残到这地步。 况且始终后缀是PHP的网站, 更何至于是Python伪装的呢? 然而很快证明是事实了,作证的便是参数污染探测。          先讲讲参数污染探测,说的多么神秘无非就是提交重复

利用python封装的BEEF-XSS API进行浏览器自动化攻击

图片
0x00 为什么要自动化利用          BEEF框架着实厉害,支持模块动态加载,还有很多厉害的模块国内的XSS平台上根本就没有。但是如果不进行自动化攻击就很鸡肋了,想想你搞了个恶意链接,构造了XSS,或者打进人家服务器给别人嵌一个什么的,目标还点了链接,结果你不在电脑前没有去点模块去利用,白白错失了攻击机会,岂不痛哉?因此BEEF的自动化是很重要的 0x01 为什么要用python封装API利用而不用自带的ARE          首先ARE不够灵活,搞什么rule set,非常死板的感觉,而直接调API可以更灵活地交互          其次,笔者讨厌ruby,非常讨厌ruby,并且丝毫不能理解msf和beef为什么要用ruby写  这才是主要原因好吧 0x02 python封装API          BEEF的API用HTTP调用,因此用python的requests库写起来非常顺手          我很懒,就把BEEF的API封装在了一个beefhandle类里面,首先使用BEEF密码连接获取token来初始化对象,然后做了获取当前在线浏览器/执行命令/获取命令结果的简单支持,都塞在函数里面。更多的一些东西就没弄了 0x03 实现自动化          自动化的简单实现也不复杂,不断调用API查找新上线的主机,将每个主机启动一个线程单独处理,每个主机执行的命令塞到一个命令列表里,一个函数专门去循环查询命令执行结果 0x03 图和代码 其中代码里的探测社交帐号的模块是自己写的,不是自带的,想要使用需要先改代码 (第一次发图的时候居然忘记打码,幸好访问量只有可怜的2)          代码 https://github.com/TomAPU/Scripts/tree/master/beef-python