DVWA
介绍DVWA (Damn Vulnerable Web Application) 是一个故意设计为存在安全漏洞的 Web 应用程序。它是开源的(基于 PHP/MySQL),专为信息安全学习、测试和演示而开发。其核心目的是提供一个安全的环境,让安全从业者、学生或开发人员练习渗透测试技术和理解 Web 漏洞原理。 如何搭建本章使用Windows环境下的phpstudy进行搭建 下载phpstudy:Windows版phpstudy下载 - 小皮面板(phpstudy) 下载DVWA:digininja/DVWA: Damn Vulnerable Web Application (DVWA) 将下载好的文件夹DVWA-2.5放在phpstudy_pro/WWW/目录下 在/www/dvwa-2.5/config下修改config.inc.php.dist文件 去掉后缀.dist改为config.inc.php并打开按照如下设置 这里DB_USER如果不是root可能会出现报错 打开phpstudy设置网站,根...
CSRF
什么是 CSRFCSRF(Cross-Site Request Forgery,跨站请求伪造) 攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。 关键点 利用了用户的 身份认证状态(如 Cookie)。 攻击者诱导用户点击链接或加载页面/图片,即可悄无声息发起请求。 如果服务器没有做好防护,攻击请求将被认为是合法用户操作。 原因 浏览器默认会携带 Cookie:即使页面是第三方站点。 用户通常 不会频繁退出登录。 请求没有必要的验证机制(如 CSRF Token)。 CSRF 的攻击原理设想一个网站 bank.com 有如下请求: 1234POST /transferHost: bank.comCookie: session=abc123Body: to=attacker&amount=1000 攻击者构造一个页面如下: 1<img src="http://bank.com/transfer?to=atta...
SSRF
什么是SSRFSSRF,Server-Side Request Forgery,服务端请求伪造,是一种由攻击者构造形成由服务器端发起请求的一个漏洞。一般情况下,SSRF 攻击的目标是从外网无法访问的内部系统。 漏洞形成的原因大多是因为服务端提供了从其他服务器应用获取数据的功能且没有对目标地址作过滤和限制。 攻击者可以利用 SSRF 实现的攻击主要有 5 种: 可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的 banner 信息 攻击运行在内网或本地的应用程序(比如溢出) 对内网 WEB 应用进行指纹识别,通过访问默认文件实现 攻击内外网的 web 应用,主要是使用 GET 参数就可以实现的攻击(比如 Struts2,sqli 等) 利用 file 协议读取本地文件等 场景 能够对外发起网络请求的地方,就可能存在 SSRF 漏洞 从远程服务器请求资源(Upload from URL,Import & Export RSS Feed) 数据库内置功能(Oracle、MongoDB、MSSQL、Postgres、CouchDB) Webmail 收取其他邮箱邮件...
条件竞争
介绍条件竞争(Race Condition)是一种并发编程中的问题,指的是多个线程或进程在无正确同步机制的情况下访问共享资源,导致程序行为不可预测或错误的情况。 触发条件 并发,即至少存在两个并发执行流。这里的执行流包括线程,进程,任务等级别的执行流。 共享对象,即多个并发流会访问同一对象。常见的共享对象有共享内存,文件系统,信号。一般来说,这些共享对象是用来使得多个程序执行流相互交流。此外,我们称访问共享对象的代码为临界区。在正常写代码时,这部分应该加锁。 改变对象,即至少有一个控制流会改变竞争对象的状态。因为如果程序只是对对象进行读操作,那么并不会产生条件竞争。 现实场景网店购物假设网店有 1 件商品,两个用户几乎同时下单: 用户 A 读取库存(库存 = 1) 用户 B 也读取库存(库存 = 1) 用户 A 付款成功,系统更新库存 1 → 0 由于用户 B 读取库存的时候用户A并没有付款成功,所以读到的库存也是1允许继续执行付款操作,最后付款成功,库存实际变成 -1(超卖) 银行取钱假设银行账户余额为 1000 元,两个人同时在不同的 ATM 机上取...
robot
前言考虑到近段时间由于种种原因不断重装机器人(太菜了😭), 决定把安装设置过程都记录下来方便后面参考 本次教程是将Koishi(docker)+NapCat部署在Linux云服务器上的,若读者是其他需求配置就不用再往下看了~ 在安装过程中出现问题建议前往官网及论坛搜寻 介绍onebot标准所描述的连接规范和接口定义简洁明了,易于理解、实现和接入,同时文档语言清晰易读。 Napcat基于TypeScript构建的Bot框架,通过相应的启动器或者框架,主动调用QQ Node模块提供给客户端的接口,实现Bot的功能. Koishi是一个跨平台、可扩展、高性能的聊天机器人框架。 当前配置Koishi版本: Core: 4.18.7 Console: 5.29.3 NapCat版本: 4.5.17 LinuxQQ版本 : 3.2.15-30899 Linux版本: linux x64 5.4.0-110-generic Ubuntu版本:Ubuntu 20.04.4 LTS 开放端口:5140 6099 安装Koishi12docker pull koishijs/koishi #下载...
php反序列化
介绍反序列化是将存储的数据(通常是字符串)转换回原始数据结构的过程。在 PHP 中,序列化和反序列化常用于保存和传输数据。 关键函数serialize 将对象格式化成有序的字符串 unserialize 将字符串还原成原来的对象 例子: 123456789101112131415<?php$test=array('wo','shi','nailong');$test=serialize($test);echo($test.PHP_EOL);print_r(unserialize($test));/**a:3:{i:0;s:2:"wo";i:1;s:3:"shi";i:2;s:7:"nailong";}Array( [0] => wo [1] => shi [2] => nailong)**/ 序列化是对类与对象的操作,不涉及其函数方法 不同成员变量可访问性 php7.1以下,反序列化不会忽略成员变量...
PHP特性
本文章基于ctfshow web入门的php特性编写,并结合做题经验进行补充 弱类型与强类型比较 PHP: PHP 类型比较表 - Manual * 代表在 PHP 8.0.0 之前为 **true**。 弱等于 true false 1 0 -1 "1" "0" "-1" null [] "php" "" true true false true false true true false true false false true false false false true false true false false true false true true false true 1 true false true false false true false false false false false false 0 false true false true false false true false true false fals...
ISCTF 2024
WEB25时晓山瑞希生日会123User-Agent: Project Sekaidate: Tue, 27 Aug 2024 05:00:00 GMTx-forwarded-for: 127.0.0.1 还得搜下晓山瑞希的生日呢,但是GMT是日本时间吗? 小蓝鲨的冒险123456789101112131415161718192021222324252627282930313233343536<?phperror_reporting(0);highlight_file(__FILE__);$a = "isctf2024";$b = $_GET["b"];@parse_str($b);echo "小蓝鲨开始闯关,你能帮助他拿到flag吗?<br>";if ($a[0] != 'QNKCDZO' && md5($a[0]) == md5('QNKCDZO')) { $num = $_POST["num"]; ...
MoeCTF 2024
MISC杂项入门指北海报图片按这个角度解摩斯密码得到flag ez_F5F5隐写密码在十六进制数据中,解base64得到 罗小黑战记1234567891011121314151617181920212223242526272829303132from PIL import Imageimport osdef save_gif_frames(gif_path): # 打开 GIF 图片 gif = Image.open(gif_path) # 创建输出目录 output_dir = "xxx" if not os.path.exists(output_dir): os.makedirs(output_dir) # 遍历每一帧并保存 frame = 0 while True: # 保存当前帧 gif.save(os.path.join(output_dir, f"frame_{frame}.png")) ...
SHCTF 2024
MISC有WiFi干嘛不用呢?从下载的log,netxml,csv等文件得知wifi加密方式为WPA-PSK,并且还有cap流量包和密码字典aircrack-ng安装和基础使用教程使用aircrack-ng工具爆破密码,作为flag提交即可 Rasterizing Traffic直接搜索flag字符串得到的是错误flagTCP流18拿到一张png图片,打开发现是光栅https://blog.zgsec.cn/archives/504.html借用脚本并做细微修改,将三维改二维 12345678from PIL import Imageimport numpy as npimg = np.array(Image.open('flag.png'))for i in range(5): z = np.zeros_like(img) z[:, i::5] = img[:, i::5] Image.fromarray(z).show() 拜师之旅①给PNG添加头尾,并修改宽高即可拿到flag 真真假假?遮遮掩掩!第一个zip是伪加密,第二个在注释处有...