分类 CTF 下的文章

SCTF2018 Web Writeup

0x01 新的建议板

看了一下页面内引用了AngularJS 1.4.6,然后找了一下对应版本的XSS漏洞,参考文章XSS without HTML: Client-Side Template Injection with AngularJS

1.4.0 - 1.4.9

{{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}}

提交留言即可触发xss,管理员那边也会触发一遍。

这里留言似乎有点过滤,我用base64编码然后利用JQuery的$.getScript函数引用js文件

Continue Reading...

DC0531 CTF Writeup

web1

先通过f:q:r:,捡起武器装好子弹,通过s:ip攻击,vps打开tcpdump抓到请求过来的icmp包,拿到源ip访问

开扫描器扫到.git源码,通过Githack下载源码

定位到微信机器人的主要文件,\Application\Home\Controller\TestController.class.php

看了一下代码逻辑,首先通过 p: 读取flag内容,再通过 s: 每次读取一个字符,最后通过base64解码即可。

Continue Reading...

SUCTF 2018 Web Writeup

0x01 Anonymous

这道题是HITCON2017一道题的删减版,拿Writeup里的payload即可获得flag

参考文章:https://lorexxar.cn/2017/11/10/hitcon2017-writeup/#baby-h-master-php-2017

0x02 Getshell

参考文章:https://www.leavesongs.com/PENETRATION/webshell-without-alphanum.html

if($contents=file_get_contents($_FILES["file"]["tmp_name"])){
    $data=substr($contents,5);
    foreach ($black_char as $b) {
        if (stripos($data, $b) !== false){
            die("illegal char");
        }
    }     
} 

Continue Reading...

DDCTF 2018 Web Writeup

web1 数据库的秘密

看题目猜是注入,访问题目发现只允许 123.232.23.245 IP访问。没啥好说的,直接改HTTP 的HEADERS,加个X-Forwarded-For: 123.232.23.245。发现可以正常访问了,并且注意到有个hidden的input,参数名为author,是本题的注入点。
为了测试payload方便,使用 burp 来修改数据。
proxy->options->match and replace
useragent替换成X-Forwarded-For: 123.232.23.245
hidden 替换成 text,将intercept勾上off
这样就可以在浏览器上直接测试:

稍微fuzz下,过滤了union ,只能使用and来盲注。同时提交请求还会带上一个time和sig。这两个参数是在js计算出来的。思路很明确,有个盲注,需要计算sig,和time。直接使用python调用js来计算,就比较方便。或者使用webdriver来做。我选择execjs来调用js脚本。

Continue Reading...

0CTF 2018 h4x0rs.club2 writeup

0x01 前言

这道题硬刚了一晚上都没刚出来,赛后发现题目还没关,心血来潮试着做了一下,找到了xss点,可惜xss bot已经关了就没有验证到,在这里分享一下解题思路。

0x02 解题

全站有两处XSS,都有CSP限制

//首页反射型XSS  https://h4x0rs.club/game/?msg=aaaa
Content-Security-Policy: script-src 'nonce-d545899643f50aae21eb6baee87758b6' 'strict-dynamic';

//个人资料存储型XSS   https://h4x0rs.club/game/user.php/0xwfox
Content-Security-Policy: default-src 'none'; img-src * data: ; script-src 'nonce-12b24046f6b695704236666876698ce5'; style-src 'self' 'unsafe-inline' fonts.googleapis.com; font-src 'self' fonts.gstatic.com; frame-src https://www.google.com/recaptcha/;

首先分析下CSP限制的内容,寻找下可以利用的点。两处都有nonce值进行限制,没法通过静态写入HTML的方式执行JS脚本。由于个人资料的CSP规则太多,iframe框架也限制https://www.google.com/recaptcha/,根据hint提示构造跳转到CSP限制少点的首页XSS。

首页的CSP中只有script-src限制,其中的strict-dynamic就是我们要利用的地方

"strict-dynamic"允许js动态添加的脚本执行,而忽略script-src的白名单。并且,其他的script-src白名单会被忽略,浏览器不会执行静态或解析器插入的脚本,除非它伴随有效的nonce值。

所以我们只能通过首页的DOM XSS插入js脚本,才能够成功插入js。分析游戏首页的代码,从中寻找利用点,两个注释附近的地方比较可疑

Continue Reading...