文章归档

置顶文章

Web安全

Web安全基础

PHP相关

Writeups

靶机系列

HackTheBox

VulnHub

代码审计

PHP代码审计

流量分析

机器学习

基础学习

Python

Python编程

Java

Java编程

算法

Leetcode

随笔

经验

技术

 2020-07-04   946

BUUCTF——渗透测试篇

GKCTF2020 老八小超市儿

考点

  • 弱口令登录
  • shopxo1.8.0 后台RCE

解题

没去想后台地址弱密码还是经验太少了

然后就是看传文件点,传个shell上去

但是文件具体在哪又找了半天

如果传在默认主题zip的default/__static__/shell.php

那么访问路由应该是下面这样

1
/public/static/index/default/shell.php

getshell完了,根据提示,去找生成的脚本(因为这个脚本是由root权限+定时执行的)

改造下这个脚本,反弹shell或者直接执行cat命令,就拿到root权限了。

BJDCTF 2nd Schrödinger

考点

  • 奇怪的考点

解题

打开题目有一个test.php,是一个需要登录的网页,爆破的target应该就是这个test.php

并且Forecast success rate是根据JS代码来生成的,发现爆破很慢,抓包查看发现有个cookie是base64加密,解码之后很像时间戳,直接清空看看效果,发现直接99%,点击check,弹出来Bilibili的AV号。

根据时间查看评论得到flag。

我还以为要去看北京大学 量子力学的视频呢

V&N HappyCTFd

考点

  • CTFd 1day

解题

考察的是CTFd v2.0.0 – v2.2.2 account takeover

可以直接看这篇分析:https://www.colabug.com/2020/0204/6940556/amp/

利用过程:

  • 先在buuoj注册个邮箱
  • 利用首尾添加空格绕过限制来注册一个与受害者用户名相同的账号
  • 找回密码链接发送到自己的邮箱
  • 修改自己账号的用户名(与受害者不同)
  • 点击重置密码链接,设置新密码

BJDCTF 2nd elementmaster

考点

  • 想象力

解题

这道题真的有点脑洞大开了。。。。

打开题目有两个hide标签,id很可疑,感觉是Hex编码,用工具转换成ASCII拼接后是Po.php

这里就要知道Po是一个化学元素,再结合题目和图片,把所有的化学元素都给遍历一遍。直接看别人的WP,脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# coding=utf-8
import requests

periodic_table = ('H', 'He', 'Li', 'Be', 'B', 'C', 'N', 'O', 'F', 'Ne', 'Na', 'Mg', 'Al', 'Si', 'P', 'S', 'Cl', 'Ar',
'K', 'Ca', 'Sc', 'Ti', 'V', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn', 'Ga', 'Ge', 'As', 'Se', 'Br',
'Kr', 'Rb', 'Sr', 'Y', 'Zr', 'Nb', 'Mo', 'Te', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd', 'In', 'Sn', 'Sb', 'Te',
'I', 'Xe', 'Cs', 'Ba', 'La', 'Ce', 'Pr', 'Nd', 'Pm', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 'Tm',
'Yb', 'Lu', 'Hf', 'Ta', 'W', 'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg', 'Tl', 'Pb', 'Bi', 'Po', 'At', 'Rn',
'Fr', 'Ra', 'Ac', 'Th', 'Pa', 'U', 'Np', 'Pu', 'Am', 'Cm', 'Bk', 'Cf', 'Es', 'Fm', 'Md', 'No', 'Lr',
'Rf', 'Db', 'Sg', 'Bh', 'Hs', 'Mt', 'Ds', 'Rg', 'Cn', 'Nh', 'Fl', 'Mc', 'Lv', 'Ts', 'Og', 'Uue')
url = "http://5fd398b5-f94f-4f8a-b379-797755b20891.node3.buuoj.cn/"
result = ""

for element in periodic_table:
req = requests.get(url + element + ".php")
if req.status_code != requests.codes.ok:
continue
result += req.text
print(result)

跑出来的字符串拼接成一个文件名,打开即是flag。

Copyright © ca01h 2019-2020 | 本站总访问量