Skip to content

Category: 每刻,知识分享

严格 CSP 下的几种有趣的思路(34c3 CTF)

Posted in 每刻,知识分享

实际上是 34c3 CTF Superblog 1&2 Writeup 本次 web 仅看了 superblog 一题,未能解出,想到了正确的做法却走在了错误的道路上,在此讨论本题的几种解法,聊聊正确的思路,以及一些有趣的点。 Superblog 1 & 2 题目结构 首页 注册(注册用户,用户名长度限制 150 个字节,允许使用数字,字母,以及 @/./+/-/_ ,密码不允许使用弱口令) 登陆 feed 报告问题…

SQLMAP 人工辅助注入简介

Posted in 每刻,知识分享

以前在平时比赛的时候很少用 SQLMAP,一是感觉这样显得自己好像什么都不会,二是真实原因,并不是很会用这个东西,直接测基本是测不出来的,也懒得用。 然而现在渐渐的纠正了自己的这一认识,实习期间也偶尔会遇到需要 SQLMAP 取一些测试数据的时候,这时候研究了一下才念起了 SQLMAP 的好来,原来经过指导还是很聪明的工具,当然也有被折磨疯的时候,因为有时候就是教不会,原因还得继续探索,然而这个过程仍然收获了一些东西,记录下来分享一下。 SQLMAP 辅助注入的参数 指定数据库系统 指定注入技术 指定对返回值的判断依据 指定 UNION 查询具体的列数 TAMPER 模块的编写 何时需要用 TAMPER 编写规范 中转脚本的编写 何时需要用中转脚本 编写规范 如何判断后端数据库 SQLMAP…

TCTF 2017 FINAL WEB PARTIAL WRITEUP

Posted in 每刻,知识分享

本次比赛 WEB 部分完成了四道题目,在新人赛中获得了冠军,从全局题目完成度来看也是大概第四第五的样子,团队的力量终于凸显了出来。 这里留下 WEB 部分的 WRITEUP,鹿师傅呜呜呜。。我总算更新了。 AVATAR CENTER 这题一开始看了半天不知道啥意思,测了好久没什么头绪,感觉要猜到目录,后来通过注入发现头像的默认路径,看起来上传的头像不会在 WEB 目录了,于是扫了一下端口发现了个奇怪的端口 2121 是 ftp 的,想不到能直接匿名访问… 于是开始源码审计。 首先在登录处的注入,这个盲测也能测出来 $username = $request->getParam(‘user’); $password = $request->getParam(‘pass’); if…

Boston Key Party 2017 writeup

Posted in 每刻,知识分享

BKP2017在大家的努力下打到了18名,的确是尽力了,期待大乌龟的回归。 Prudentialv2 看逻辑是两个sha1值的比较,用google前几天刚跑出来的结果好了,太长了,但是实际上两个文件只有一个block是不一样的,编写脚本找到这个位置跑过这个block,这两段的sha1值就是相同的。 Artisinal Shoutboxes 题目逻辑是先注册一个名称,就会生成一个对应的域名的留言板。 用户名处有长度限制,但是限制是在前端可以绕过的,改一下len属性即可。 尝试了一下<script>alert(1);</script>发现很快就被ban了,于是猜测被ban是触发xss的条件。 在admin子域中,发现html页面源代码中有一段注释里会放cookie,于是有了思路。 在留言板页面构造耿直的xss触发封禁 xss的内容是设置根域的cookie,cookie的内容闭合了html注释,并且插入script标签再次完成xss 获取当前网页源代码的内容。 getflag! Snow Cloud 本题号称新时代新云,有创建标签,浏览标签,分享标签,删除标签的功能。 删除标签的同时会输出原本标签的内容,而在浏览标签中的内容是经过html编码的。 于是我们有一个大概的思路: 首先创建个看上去能xss的标签,然后share给管理员,管理员pop后触发xss 问题来了,他这里有严格的过滤,尖括号双引号单引号全都不能用。 直到发现了他奇怪的转化。 ‘xxxxyz’会变成’)oooo<z\n\n’,’a’->”,’啊啊’->’BB\n\n’ ‘Ö’ -> ‘\n\n’,…

HITCON 2016 WEB WRITEUP[2016.10.12已更新web500]

Posted in 每刻,知识分享

HITCON 2016 WEB writeup Are you rich && Are you rich2 这道题有两种解法,在token那里存在注入,可以注入得到flag,或者上网找一个大富豪的bitcoin账号,然后直接填进去就行了,这样两道题都能解出来。 Secure Posts 模板注入,{{config}},填到author那里即可。 Config {‘PREFERRED_URL_SCHEME’: ‘http’, ‘DEBUG’: False, ‘JSON_AS_ASCII’: True, ‘PROPAGATE_EXCEPTIONS’: None, ‘SESSION_COOKIE_SECURE’:…

LCTF 2016 WEB Writeup

Posted in 每刻,知识分享

WEB WEB50 签到题 首先登陆处有注入,报错盲打,猜了个表名和字段,就能得到密码。 登陆后要求你购买flag,抓包后修改flag数目为0,使用intruder爆破密码,即可得到最终flag WEB150 我控几不主我及几啦 这题现在访问不了,不过没啥好说的,sqlmap跑出来的 WEB200 睡过了 这题真是excited,看到key可以加这种有语病的句子,瞬间想到了前段时间的CVE,通过+号绕过正则过滤,通过伪造成员属性数目绕过wakeup方法。具体分析见http://paper.seebug.org/39/ 这样就能写一个文件获得webshell,进去后有open basedir的限制,在知识库上有一篇文章讲怎么绕过列目录的,在web根目录发现了flag(记得是) WEB250 苏打学姐的网站 Img.php通过正则过滤使你不能读源码,之前有一道一样的过滤可以绕过。 绕过方法见这篇文章:http://www.yqxiaojunjie.com/index.php/archives/27/ ps.txt了!得到下一个关口。 分析admin.php.txt可知,这是CBC翻转攻击,通过对已知的明文分组,再翻转特定的bit即可修改指定位。 对其中57和63位做修改即可。 <?php $enc=base64_decode(“cookie”);//一开始返回的cookie内容 $enc[57] = chr(ord($enc[57])…

鸡肋漏洞利用两则

Posted in 每刻,知识分享

放了好久的存稿了,慰藉长草的博客 仅仅存在一个php本地文件包含,并存在诸多限制的情况 这时候你可以读取的文件非常的有限,且url fopen wrappers被关闭的情况下,无法读取源码让人很头痛…感觉无法进行下一步,此时,可以利用文件包含去触发一个sigsegv。 php sigsegv信号的触发条件主要是溢出与非法内存访问,在sigsegv信号之后,php程序会异常终止。 我们要利用php程序的异常终止来切断一个正常的流程,我们想到了上传流程。 php可以接收上传文件,创建临时文件,经过相应的处理函数(move_uploaded_file())处理后,删除临时文件,最后退出php程序。 存在文件包含的地方不一定有move_uploaded_file(),但是上传文件一定会产生临时文件,我们如果能切断这个流程,让php在删除临时文件之前退出,我们也就能成功的向tmp目录下达成任意文件写入(具体默认临时文件目录随系统有所改变)。于是,一个鸡肋的本地文件包含就可以在最小条件下getshell。 那么如何触发sigsegv呢?我们构造一个溢出,递归包含自身,也就能中断正常的上传流程。 <?php include($_GET[‘file’]); ?> 从get参数中获取文件名,include进来,那么包含文件本身就会无限的去包含file参数,达到了我们的目的。 梳理一下步骤。 目标站点a.com/b.php的file参数存在lfi 构造上传页面为 <form enctype=”multipart/form-data” action=”http://a.com/b.php?file=b.php” METHOD=POST> <input name=”userfile” type=”file”>…

三个白帽代码审计之条条大路通罗马1

Posted in 每刻,知识分享

代码审计好难做,这几天做这些做的异常压抑,好在最后在v牛帮助下总算解决了,最终知道了自己不是常规思路。。。。mdzz,问了超威蓝猫,orz!!! index.php define (‘PATH_WEB’, dirname(__FILE__).’/’); include_once ‘init.php’; if($_M[‘form’][‘class’]){ include PATH_WEB . $_M[‘form’][‘class’].’.php’; } if($_M[‘form’][‘formname’] || $_FILES[‘file’][‘name’]){ $upfile = new upfile(); $upfile->set(‘savepath’, ”); $upfile->set(‘is_rename’, $_M[‘form’][‘is_rename’]); $back…

常见web源码泄漏解析

Posted in 每刻,知识分享

web题目中源码泄露还是比较常见的,在什么时候需要去考虑源码泄漏呢,一是题目中所有猜测的可能存在漏洞的点都确认应该没有漏洞的时候,比如说在有一次比赛中题目中给了个登录框…后来确认是静态的页面,那这个时候就必须考虑源码泄露了。二是已经确认了解题思路,但是对漏洞的测试非常难以进行的,比如说这次bctf,xss在我们这里没有回显,而管理的页面也看不到,每次都要等到robot看过了我们提交的页面之后才能确认xss是否成功,这是非常麻烦的,而主办方也不希望因为自己的机器人出问题而影响大家漏洞的测试,这次比赛中robot屡次出现问题…有源码泄漏的可能性还是很高的。为什么要强调这一点,这一点其实只有在比赛中才会比较有用,因为一道题没有人做出来的话,才有放hint的可能性,如果你的思路比较跳,你就容易在这样的比赛中获得优势。本次bctf因为第二道homework太久没人做出来才放的hint,如果说很早就有人发现了源码泄露,那么这道题估计注定只有一个人能做出来了。本篇将对网络上常见的源码泄露做些分析,浅薄之见还望多多包涵。 Bitkeeper(上古神器) CVS Subversion(SVN) Git Mercurial   Bitkeeper 这真的是上古神器了,我后面要介绍的其他几款工具推出的时候都是要号称取代bitkeeper… 该款软件如何安装的说明,上面附带有把试用版本发送到自己的邮箱…:http://www.bitkeeper.com/installation.instructions 测试的目录 http://url/.bk 403 Forbidden 取回源码的命令 bk clone http://url/name dir 这个命令的意思就是把远端一个名为name的repo clone到本地名为dir的目录下。 查看所有的改变的命令,转到download的目录 bk changes CVS…