代码编织梦想

PE格式文件修复过程-爱代码爱编程

这几天心血来潮想研究一下PE格式文件,因为我们知道PE文件其实是Windows离不开的一个文件格式,理解了这个格式对以后也有帮助。PE格式文件修复过程。一般来说,正常的PE结构PE头和PE体两部分组成。其中,PE头DOS头、DOS存根、NT头、节区头几部分,余下的节区合称为PE体。PE是Windows可执行文件总称,常见的有DLL,EXE,OCX,SYS等

攻防世界 Crypto高手进阶区 3分题 fanfie-爱代码爱编程

前言 继续ctf的旅程 攻防世界Crypto高手进阶区的3分题 本篇是fanfie的writeup 发现攻防世界的题目分数是动态的 就仅以做题时的分数为准了 解题过程 得到一串字符 MZYVMIWLGBL7CIJOGJQVOA3IN5BLYC3NHI 瞅着像base64 尝试下无果 这就抓瞎了 查了查 原题有提示 标志被转换为base3

CTF PWN Fastbin堆溢出入门-爱代码爱编程

目标程序及EXP下载 解题思路 添加新武器时会在偏移52个字节的地方存下上一个武器的内存地址如下:*((_DWORD *)dword_804A288 + 13) = v1; //13个DWORD就是13*4=52字节 输入武器名时存在溢出,因此可以覆盖这个地址,指向另一片内存;提交订单时会通过单向链表的方式free各个武器的内存区域,由于第1步中可

攻防世界 Reverse高手进阶区 2分题 re1-100-爱代码爱编程

前言 继续ctf的旅程 攻防世界Reverse高手进阶区的2分题 本篇是re1-100的writeup 发现攻防世界的题目分数是动态的 就仅以做题时的分数为准了 解题过程 PE查壳 扔进IDA int __cdecl __noreturn main(int argc, const char **argv, const char **envp)

BUUCTF [BSidesCF 2020] Had a bad day-爱代码爱编程

BUUCTF [BSidesCF 2020] Had a bad day 考点: php伪协议嵌套 启动环境: 其中包含两个按钮,选择猫和狗的图片: 此时的URL变为: http://xxx/index.php?category=meowers 其中包含有GET传参,尝试修改category传入的值,得到报错: 其中为include()

BUUCTF [GWCTF 2019] 我有一个数据库-爱代码爱编程

BUUCTF [GWCTF 2019] 我有一个数据库 考点: 目录扫描phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)启动环境: 应该是为乱码,结合题目名,应该与数据库有关,寻找提示无果,使用dirsearch扫描后台: 扫描到如上页面,查看robots.txt: 查看phpinfo页面:dirsearch

BUUCTF [BJDCTF2020] ZJCTF,不过如此-爱代码爱编程

BUUCTF [BJDCTF2020] ZJCTF,不过如此 考点: php伪协议读取源码函数preg_replace()在\e模式下,存在代码执行漏洞对于传入的非法的$_GET数组参数名,会将其转换成下划线_启动环境,给出源码: <?php error_reporting(0); $text = $_GET["text"]; $f

BUUCTF [SWPU2019] Web3-爱代码爱编程

BUUCTF [SWPU2019] Web3 考点: Flask伪造sessionunzip()存在软链接攻击软链接的压缩包的制作/cwd指向当前进程运行目录的一个符号链接,即Flask运行进程目录启动环境: 首先是一个登陆页面,标题为:CTF-Flask-Demo,推测其应为Flask所编写,尝试使用admin用户登陆: 用户名:admin

攻防世界 Reverse高手进阶区 2分题 Newbie_calculations-爱代码爱编程

前言 继续ctf的旅程 攻防世界Reverse高手进阶区的2分题 本篇是Newbie_calculations的writeup 发现攻防世界的题目分数是动态的 就仅以做题时的分数为准了 解题过程 PE查壳 扔进IDA int __cdecl main(int argc, const char **argv, const char **envp

BUUCTF [HCTF 2018] admin-爱代码爱编程

BUUCTF [HCTF 2018] admin 解法一:弱密码解法二:Flask伪造Session解法三:Unicode欺骗 考点: 弱密码Flask伪造sessionUnicode欺骗启动环境: 简洁的页面和一个菜单栏,菜单栏中包含登陆、注册功能 查看网页源码,发现提示: <!-- you are not admin -->

BUUCTF [极客大挑战 2019] Http-爱代码爱编程

BUUCTF [极客大挑战 2019] Http 启动环境: 主页为三叶草技术小组纳新,查看网页源码 ,发现隐藏的页面: <div class="image"><img src="images/pic01.jpg" alt="" /></div><div class="content"> &l

BUUCTF [网鼎杯 2020 朱雀组] phpweb-爱代码爱编程

BUUCTF [网鼎杯 2020 朱雀组] phpweb 考点: \绕过in_array()黑名单(非预期)call_user_func()函数把第一个参数作为回调函数调用反序列化find命令模糊查找flag位置启动环境: 页面有Warning,发现页面存在自动刷新情况,使用BurpSuite抓取数据包: 传参中包含func与p,且页面中

BUUCTF [CISCN2019 华东南赛区] Web11-爱代码爱编程

BUUCTF [CISCN2019 华东南赛区] Web11 考点: Smarty的XFF注入全部的PHP条件表达式和函数都可在{if}中使用 根据页面提示,应该是一个类似IP查询的网站,根据XFF(X-Forwarded-For)判断 使用BurpSuite抓取数据包: 添加请求头:X-Forwarded-For: 127.0.0.1,在R

攻防世界 Reverse高手进阶区 2分题 simple-check-100-爱代码爱编程

前言 继续ctf的旅程 攻防世界Reverse高手进阶区的2分题 本篇是simple-check-100的writeup 发现攻防世界的题目分数是动态的 就仅以做题时的分数为准了 解题过程 PE查壳 扔进IDA int __cdecl main(int argc, const char **argv, const char **envp) {

攻防世界 Crypto高手进阶区 3分题 streamgame1-爱代码爱编程

前言 继续ctf的旅程 攻防世界Crypto高手进阶区的3分题 本篇是streamgame1的writeup 发现攻防世界的题目分数是动态的 就仅以做题时的分数为准了 解题过程 得到一个key文件 和一段python from flag import flag assert flag.startswith("flag{") # 作用:判断字符串是

攻防世界 Misc高手进阶区 4分题 Py-Py-Py-爱代码爱编程

前言 继续ctf的旅程 攻防世界Misc高手进阶区的4分题 本篇是Py-Py-Py的writeup 发现攻防世界的题目分数是动态的 就仅以做题时的分数为准了 解题过程 得到一个pyc 反编译 # uncompyle6 version 3.5.0 # Python bytecode 3.6 (3379) # Decompiled from: Py

BUUCTF [CISCN2019 总决赛 Day2 Web1] Easyweb-爱代码爱编程

BUUCTF [CISCN2019 总决赛 Day2 Web1] Easyweb 考点: robots.txt及备份文件addslashes()函数、通过转义闭合语句用户名密码盲注文件上传php短标签启动靶机: 一个登陆页面,查看源码: <div class="clear"> </div> <div clas

BUUCTF [BUUCTF 2018] Online Tool-爱代码爱编程

BUUCTF [BUUCTF 2018] Online Tool 考点: escapeshellarg绕过(参考链接)Nmap -oG 将命令和结果写入文件启动靶机,给出了页面源码: <?php if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $_SERVER['REMOTE_A

BUUCTF [网鼎杯 2020 朱雀组] Nmap-爱代码爱编程

BUUCTF [网鼎杯 2020 朱雀组] Nmap 考点:nmap -oG 写入文件、-iL读取扫描文件、escapeshellarg绕过(参考链接)解法:将nmap扫描结果写入文件时加入一句话木马,需要绕过escapeshellarg()函数 启动环境: 类似Nmap的功能,一个输入命令行,提示输入ip地址,尝试输入正常内容:127.0.

BUUCTF [CISCN2019 华北赛区 Day2 Web1] Hack World-爱代码爱编程

BUUCTF [CISCN2019 华北赛区 Day2 Web1] Hack World 启动环境: 提示了存在flag表与flag列,先输入正常内容1: 可以得到正常的回显,再测试2: 再输入999,得到错误提示: 输入2-1时,得到注入提示: 在判断数值型和字符型注入时,可以通过提交数学式的方式,例如:id=2/2,字符型返回id=2