2017强网杯 Web Writeup

文章目录
  1. 1. broken
  2. 2. who are you?
  3. 3. phone number
  4. 4. Musee de X

broken

打开以后就是一大串jsfuck的代码,直接扔到控制台运行但是报错,修复以后在开头的[[改成[]]就好。


1
flag{f_f_l_u_a_c_g_k}

解密网站:

1
https://enkhee-osiris.github.io/Decoder-JSFuck/

who are you?

这道题第一部分很简单,抓包那里有个参数role,base64加密的rot13,解码以后是s:5:”guest”,但是这里需要改一下,把guest改成admin,然后再rot13,再base64,提交以后来到一个新的页面,右键源码:

1
<!-- $filename = $_POST['filename']; $data = $_POST['data']; -->

一股子代码执行的味道…所以开始进行相关测试,注意,每次改包的时候都要把role的参数值修改一下。

访问一下给出的链接,发现显示的就是data后面写的数据。

如果data上传的数据为(emmm,写在代码符号里是因为直接写会被当成js标签)

1
<?php phpinfo();?>

执行以后发现被拦截了,基于php弱类型,所以使用data[]来绕过,OK,成功绕过并且给出路径,访问得到flag。

1
flag{e07cd440-8eed-11e7-997d-7efc09eb6c59}

phone number

打开是一个登录界面,由于之前写过基于登录的sql注入题,所以这里也测试了一下admin这个帐户,admin’#是不会报错的,但是后面的注入似乎就不行,我想可能突破点不在这里,所以注册了一个账号进去。
发现有一个可以查询相同手机人数的入口,查询以后会显示相同的人数,之前写过一道题,利用hex编码在电话框里注入,但是这题右键源码后有个奇奇怪怪的句子(貌似还是火星文),但是在查看元素里能看到完整的句子。

电话号码那里引起了我的注意…于是我重新注册账号,在电话号码那里写入注入语句,但是提示只能用数字,所以转成hex编码,还有就是输入框那里有限制,不过没关系,抓包的时候改了就行。

1
union select schema_name from information_schema.schemata

重新上传以后这里有点问题哦…

查看相同号码的时候显示db error,修改注入语句

1
1 union select schema_name from information_schema.schemata

hex编码以后提交,登录查看对应号码,拿到数据库名称。

按照sql注入的规律…下面,拿表。

1
1 union select table_name from information_schema.tables where table_schema=0x7765626462


拿列。

1
1 union select column_name from information_schema.columns where table_name=0x75736572


题目上提示admin的电话了,所以直接查admin的电话就好。

1
1 union select group_concat(phone) from user


1
flag{6dd303b0-8fce-2396-9ad8-d9f7a72f84b0}

Musee de X

哇…看到题目就懵了…这是啥…但是在/view这个目录下能看到一些Python相关信息,然后就不知道怎么弄了,查了一下这个是Jinja2模板注入…好吧,这个我也不会,不过Y老师说了…难的东西才有价值…我抽空学了Jinja2再做吧,和hash拓展长度攻击一起。