CTF
文章平均质量分 66
CTF
H4ppyD0g
中科院某研究所在读学生,主要方向为云计算/云原生安全,博客记录平时学习过程中的笔记,不免参考各种文章资料(如有侵权请联系删除),也会存在一些知识误区,欢迎师傅们指正。付费专栏和资源都是花费长时间整理的,收费仅作为整理资料的劳动收获,如果原作者认为侵权也请联系删除。
展开
-
pwnable.kr 简单题目详细笔记汇总
pwnable.kr fd pwnable.kr collisionpwnable.kr bofpwnable.kr flagpwnable.kr passcodepwnable.kr randompwnable.kr inputpwnable.kr legpwnable.kr mistakepwnable.kr shellshockpwnable.kr coin1pwnable.kr lottopwnable.kr cmd1pwnable.kr cmd2pwnable.kr u原创 2022-09-12 16:09:12 · 863 阅读 · 0 评论 -
小迪视频CTF笔记
文章目录[CISCN2019 华北赛区 Day1 Web2]ikun[WesternCTF2018]shrinepython格式化字符串漏洞CTF知识点总结摘录链接[CISCN2019 华北赛区 Day1 Web2]ikunhttps://buuoj.cn/challenges打开后通过提示->寻找LV6->购买修改支付逻辑->绕过admin限制需修改jwt值->爆破jwt密匙->重组jwt值成为admin->购买进入会员中心->源码找到文件压缩源码原创 2021-12-12 14:40:25 · 3370 阅读 · 0 评论 -
AWD攻防学习
文章目录AW攻防步骤1-源码备份,修改口令修改ssh密码passwd打包目录tar -zcvf file.tar.gz directory_to_compress解包tar -zxvf file.tar.gz从服务器下载文件scp [-p port ]jgc@192.168.28.151:/home/jgc/a.txt b.txt上传到服务器scp b.txt jgc@192.168.28.151:/home/jgc/b.txt2-部署各个环境的WAF(比赛规则)3-扫描源码中预留或隐藏后原创 2021-12-11 16:46:56 · 1253 阅读 · 0 评论 -
[pwn] 10.整形溢出
超过存储长度直接被丢弃至于这里为什么要加4个字节的随机数据,还没弄明白0x14+0x4+4+234=262个字符,可以通过ifimport pwnflag_addr = 0x0804868Bpayload = ('x'*(0x14+0x4)).encode() + \pwn.p32(flag_addr) + ('x'*234).encode()r = pwn.remote("220.249.52.133", 44711)r.sendlineafter("Your choice:",原创 2021-09-01 20:36:15 · 149 阅读 · 0 评论 -
[pwn] 9.堆利用基础
文章目录环境搭建first_fit(use after free)fastbin_dup_into_stack(double free)环境搭建git clone https://github.com/shellphish/how2heap.gitfirst_fit(use after free)源码#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ fprintf(原创 2021-09-01 20:35:07 · 293 阅读 · 0 评论 -
[pwn] 8.堆基础
文章目录堆和堆管理器arenachunkmalloc chunkfree chunkbinfastbinsunsorted binsmall binslarge binsfastbins结构bin的双向链表结构堆和堆管理器堆是内存中一块连续的空间,由堆管理器管理。堆管理器不是由操作系统实现,是在libc中实现的。其中封装了一些系统调用来管理申请来的内存,同时为用户提供接口。主要使用两个系统调用:brk(break),mmap(memory map)主线程可以用brk和mmap,子线程只能用mmap原创 2021-09-01 20:34:16 · 296 阅读 · 0 评论 -
[pwn] 7.格式化字符串
a原创 2021-09-01 20:33:21 · 572 阅读 · 0 评论 -
[pwn] 6.ROP练习
文章目录pwn0pwn1pwn2pwn2_x64pwn3pwn3_x64pwn0经典ret2text,不过是64位程序,覆盖ebp需要8个字节。from pwn import *elf = ELF('./level0')callsys_addr = elf.symbols['callsystem']io = process('./level0')io.recvuntil(b'World\n')payload = cyclic(0x80 + 0x8) + p64(0x0000000000原创 2021-09-01 20:32:23 · 280 阅读 · 0 评论 -
[pwn] 5.ROP-ret2libc
文章目录题目ret2libc1题目ret2libc2题目ret2libc3题目ret2libc1这里需要通过gets函数覆盖返回地址到system函数,并把/bin/sh作为system的参数。由于是动态链接,所以需要把返回地址原本写system函数的地址改为system函数在plt表中的地址。from pwn import *elf = ELF("./ret2libc1")sys_addr = elf.plt["system"]bin_sh_addr = next(elf.searc原创 2021-09-01 20:31:18 · 258 阅读 · 0 评论 -
[pwn] 4.ROP
文章目录ROP返回导向编程ret2syscall动态链接及PLT和GOT表ret2libcROP返回导向编程(Return Oriented Programming)返回导向编程在栈溢出的基础上,利用程序中可执行的一些代码片段组合起来修改相应的寄存器,并控制程序的执行流程,最终执行shell命令。控制程序执行流程就需要有ret结尾的指令,这类指令序列叫gadgetROP攻击需要满足两个条件1、存在栈溢出漏洞2、程序本身有需要构造指令的代码片段ROP原理的重点需要知道ret指令的效果是pop原创 2021-09-01 20:29:37 · 526 阅读 · 0 评论 -
[pwn] 3.栈溢出
文章目录栈溢出原理ret2textret2shellcode栈溢出原理向栈中某个变量写入的数据长度超过了它预先申请的空间长度,导致超出的部分会覆盖掉栈中其他的数据,从而导致程序不按照预定的功能运行。ret2textret2text篡改栈帧上的返回地址为程序中已有的后门函数题目链接:https://pan.baidu.com/s/1y-zTIm1hWkZQEeZQuemn_Q 提取码:dii9程序代码setbuf(stdin,0)是关闭输入缓冲区,setbuf(stdout,0)同理。在v原创 2021-09-01 20:27:57 · 291 阅读 · 0 评论 -
[pwn] 2.环境搭建
文章目录安装pip2安装pwntools安装pwndbg安装checksec安装ROPGadget安装pip2sudo wget https://bootstrap.pypa.io/pip/2.7/get-pip.pysudo python2 get-pip.pypip install --upgrade setuptools安装pwntoolspip2/pip3 install pwntools安装pwndbggit clone https://github.com/pwndbg/pw原创 2021-09-01 20:27:07 · 166 阅读 · 0 评论 -
[pwn] 1.二进制基础
文章目录C语言源代码到可执行文件生成过程可执行文件分类ELF文件格式静态链接和动态链接程序执行过程函数调用栈规则C语言源代码到可执行文件生成过程编译:C源代码-》汇编代码汇编:汇编代码-》机器码链接:多个目标机器码-》一个可执行文件可执行文件分类windows:PE可执行程序.exe动态链接库.dll静态链接库.liblinux:ELF可执行文件.out动态链接库.so静态链接库.aELF文件格式ELF文件头表(ELF header)程序头表(Program header原创 2021-09-01 20:26:00 · 207 阅读 · 0 评论 -
BugkuCTF crypto Crack it
shadow密码文件在unix早些时候是没有/etc/shadow这个文件的。一个用户的所有信息都只是保存在/etc/passwd文件中,加密后的用户密码保存在了passwd文件的第二个字段中。每个用户对于password文件都是可读的。后来出现了shadow文件,把密码放在这个文件里面,并且保证了只有root才能对shadow文件进行读写。/etc/shadow中密码格式:$id $s...原创 2019-09-15 19:39:18 · 914 阅读 · 0 评论 -
CTF 密码学基础
一、编码基础1、ASCII码2、unicode 使用16位的编码空间,每个字符占用2个字节3、utf-8 是针对unicode的可变长度字符编码,使用1至6个字节为每个字符编码4、base64 是一种基于64个可打印字符来表示二进制数据的表示方法;A-Z、a-z、+、/共64个字符,最后用=填充————————————————————————————————————————————...原创 2019-09-04 20:19:50 · 1682 阅读 · 0 评论 -
CTF 各种密码加密解密总结
栅栏密码:http://www.atoolbox.net/Tool.php?Id=777原创 2019-07-16 11:26:31 · 6985 阅读 · 0 评论 -
Bugku 逆向
IDA常用快捷键F5切换成伪代码Tab汇编指令和伪代码切换空格反汇编窗口切换(列表视图、图形视图)shift+F12字符串窗口N重命名:注释只在该处出现;注释在所有交叉参考处出现H10进制和16进制切换R字符转换汇编 Ollydbg使用https://blog.csdn.net/weixin_42172...原创 2020-02-01 19:47:22 · 564 阅读 · 0 评论 -
i春秋 misc code_in_morse、套娃
code_in_morsewireshark打开pcapng,看到有image/jpeg图片,追踪流看到莫尔斯电码。在线转换,得到一大堆英文字母串。观察一下大写字母A-Z,数字2-7,base32编码,解码一下,看到了png头。解码写到文件中,其实这个base32编码好像不完整,python解码出错,我就各种加等号直到成功。import base64ls = ""with open(...原创 2020-03-01 09:32:54 · 865 阅读 · 0 评论 -
CTF misc wireshark初步
wireshark是网络封包分析软件,可以截取各种网络封包,显示网络封包的详细信息。为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容。wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡...转载 2019-09-12 22:05:26 · 1430 阅读 · 0 评论 -
CTF misc zip、rar文件伪加密
zip伪加密zip伪加密是在文件头的加密标志位做修改,进而再打开文件时识被别为加密压缩包。但实际是没有密码的,所以使用任何密码都破解不了。一个 zip文件由三个部分组成:压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志当压缩源文件目录区的全局方位标记为0900(表示为加密),并且压缩文件数据区的全局方式位标记为0000(未加密)则会被识别为加密,但是文件并没有真正的加密,也就是...原创 2019-09-12 08:26:42 · 6967 阅读 · 0 评论 -
BugkuCTF misc 好多数值
打开网页好多三个一组的数值,最多255,想到rgb色素。应该是把相应的地方进行色素填充可以得到图片。可是不知道长和宽是多少,不会了,看wp对行数进行拆分,长度和宽度相乘得到行数,一共有三组。python代码>>> from PIL import Image #引入Image>>> x = 503 #行>>> y = 122 #列...原创 2019-08-27 13:28:49 · 697 阅读 · 0 评论 -
BugkuCTF misc 想蹭网先解开密码
题目提示是手机号,先用python做一个字典出来,等会用for a in range(0, 10): for b in range(0, 10): for c in range(0, 10): for d in range(0, 10): print("1391040%d%d%d%d" %(a, b, c, d))用wireshark打开.cap看数据包里面的信息,有ea...原创 2019-08-24 15:21:12 · 536 阅读 · 0 评论 -
BugkuCTF misc 旋转跳跃
下载压缩包后里面有个.mp3文件,打开听没听出啥东西。可能是关于音频解密的吧。用MP3Stego进行解密。命令:Decode.exe -X -P syclovergeek sycgeek-mp3.mp3 解密出现一个.txt文件,里面的内容就是flag。MP3Stego的decode使用(死记硬背吧)decode.exe -X -P 密码 文件名...原创 2019-08-24 10:05:44 · 279 阅读 · 0 评论 -
BugkuCTF misc 隐写
用winhex打开压缩包里的2.png(固定)八个字节89 50 4E 47 0D 0A 1A 0A为png的文件头(固定)四个字节00 00 00 0D 代表数据块的长度为13(固定)四个字节49 48 44 52(即为ASCII码的IHDR)是文件头数据块的标示(IDCH)(可变)13位数据块(IHDR)前四个字节代表该图片的宽 00 00 01 F4后四个字节代表该图片的...原创 2019-08-23 20:41:28 · 354 阅读 · 0 评论 -
CTF misc 知识框架
下面的内容是本菜鸡在看过一个视频后的总结,如有不准确的地方请大佬指正ctf杂项部分题目主要包括三大部分:隐写、密码学、取证隐写将信息隐藏在其他载体中,不让计划的接受者之外的人获取到信息常用载体:图片、音频、视频、压缩包图片隐写1、细微的颜色差别2、gif图多帧隐藏3、Exif信息隐藏4、图片修复1、LSB最低有效位像素三原色(RGB);通过修改像素中最低的1bit来达到隐藏...原创 2019-08-22 09:11:59 · 1280 阅读 · 1 评论 -
SUCTF2019 misc 签到题
先看看有没有隐藏文件,并没有发现。用winhexcn看压缩包信息,ctrl+F搜索jpg,png,txt,flag,只发现有1.txt,也就是在压缩包里能看见的东西。打开1.txt后一堆编码放在那里,看不懂,用base64解码解不出。卡住。后来学到这是网页图片的base64编码。把那些编码嵌入到<img src="data:image/png;base64,编码"/>中,并且后...原创 2019-08-18 16:20:57 · 2562 阅读 · 0 评论 -
XCTF web Web_php_include (php://过滤)
题目代码<?phpshow_source(__FILE__);echo $_GET['hello'];$page=$_GET['page'];while (strstr($page, "php://")) { $page=str_replace("php://", "", $page);}include($page);?>用php://来引入文件流,然后include显示文件信息php://被过滤,但是有个hello因为这个页面就是默认页面,而且默认页面也可以用i转载 2020-08-28 08:58:49 · 337 阅读 · 0 评论 -
XCTF web php_rce (thinkphp)
thinkphp5.0和5.1由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.0和5.1版本。测试是否可以getshell?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system& vars[1][]=ls成功返回信息,确定存在漏洞接着查询有flag的文件?s=index/think\app/invoke原创 2020-08-28 08:55:26 · 311 阅读 · 0 评论 -
BUUCTF web CheckIn (upload新姿势.user.ini)
一看是文件上传题目,很自信,之前做过upload专题,基本上就那么几种考点。上传一个1.php试水,果然不行。那就看看将小马写在1.jpg文本文件中,用burp改包行不行,结果被检查出来了。嗯…应该是会检测文件属性吧,直接把小马写进txt然后该后缀名是不行了。知识盲区exif_imagetype:not image! ,是用了 exif_imagetype() 函数对文件格式进行了...原创 2020-02-24 13:51:17 · 689 阅读 · 0 评论 -
BUUCTF web 高明的黑客 (fuzzing)
提示源码备份www.tar.gz,就访问这个uri,下载一个压缩包,里面有三千多个php文件,打开几个看看,如果有写过小马的就可以很容易发现几乎每个文件都有好多小马。但是大多数都不好用,到这里不会了,看wp。说是这个题考的模糊测试,也就是fuzzing,又学新知识了。。知识盲区Fuzzing是指通过构造测试输入,对软件进行大量测试来发现软件中的漏洞的一种模糊测试方法。可通过向目标系统提供...原创 2020-02-23 19:12:48 · 758 阅读 · 0 评论 -
BUUCTF web Easy Calc (php字符串解析)
看一眼源码,就是计算。但是给出了url,应该是传递给那个calc.php了吧。访问一下calc.php我们需要绕过黑名单给num传参,然后让eval去执行这个str知识盲区我们在url传参可以传各种字符,但是php解析字符时要把所有字符全部转化为有效的变量名,因此它会做两件事:1.删除空白符、2.将某些字符转换为下划线(包括空格)比如说我们传递一个x=a ?x=a,但是waf不允许...原创 2020-02-23 13:54:53 · 600 阅读 · 0 评论 -
BUUCTF web admin (flask_session问题)
检查源码,发现有注释<!-- you are not admin -->,应该是提示用admin账号登录。两个功能,注册和登录,想到之前做过一个注册admin加空格的题,试了一下不成功。然后老老实实注册一个普通用户显示了自己的用户名,我们的目的因该是让自己的用户名变成admin才行。change password只能修改自己账号的密码,没有漏洞。post可能有xss漏洞,交...转载 2020-02-23 13:54:14 · 1385 阅读 · 0 评论 -
BUUCTF web EasySQL (sql_mode)
检查源码,就是一个post表单,赋值给query变量,然后提交。既然题目说是sql题目,那就测试吧。输入数字会显示1,输入字母没反应,输入双引号提示非法。这我就不会了,继续看wp说是源码泄露在github https://github.com/team-su/SUCTF-2019/tree/master/Web/easy_sql过滤了很多"prepare|flag|unhex|xml|...原创 2020-02-23 13:53:05 · 477 阅读 · 0 评论 -
BugkuCTF web sql注入2
页面post方式提交表单;所有按钮都不好用;f12检查看到action到login.php,访问一下,username和password都需要填写;输入用户名直接提交提示用户名和密码都需要填写;后台扫描没有结果;经过一些列输入测试,判断admin就是用户名,但是密码不知道;初步判断为post提交sql注入,'单引号验证一下 admin' -- #判断应该就是这道题目就是考察的sql注...转载 2020-02-08 13:57:30 · 560 阅读 · 0 评论 -
XCTF web新手练习区_1-12
view_source查看网页源码的方法:(1) F12(如果只按F12没反应,就功能键+F12)可以查看网页源码。(2) 网页源码的url以view-source: 开头。在本网页的url前面加上这个可以获取。(3) 通过python的requests.get()可以获取网页源码。————————————get_post...转载 2019-07-15 09:13:30 · 2311 阅读 · 4 评论 -
BugkuCTF web_11-20
11 web5jsfuck是一种替换密码,由( ) [ ] { } ! + 等符号组成。用解密工具解密一下,或者把那些东西放到console里面回车一下,就会爆出flag。————————————12 头等舱bp抓包,发送到spider,在target里面的response里可以找到flag。————————————13 网站被黑扫描后台发现一个shell.php访问后出现登陆...转载 2019-07-19 09:02:09 · 991 阅读 · 0 评论 -
BugkuCTF web_1-10
1 web2查看网页源码,看到flag。————————————2 计算器打开检查,找到对应输入答案的源码<input type="text" class="input" maxlength="1">可以看到maxlength=“1”,表示表单中输入数据最大长度为1,改成加法运算结果的位数就可以了。要注意的是改完之后不能刷新。————————————3 web基础$...转载 2019-07-17 16:54:28 · 853 阅读 · 0 评论 -
XCTF web高手进阶区_1-6
1 ics-06去报表中心,发现url后面跟的参数是?id=1,说明id是一个整数型,然后bp抓包,进行爆破id,2333成功。————————————2 NewsCenter1' union select 1,2,3 #判断存在sql注入漏洞(知识点:'是为了闭合前面的单引号,接着让它执行我们自己写的语句,#注释掉后面的后台语句)1' union select 1,2,databas...原创 2019-08-08 11:54:41 · 1042 阅读 · 0 评论 -
BugkuCTF web_21-30
21 秋名山老司机多刷新几次网页发现说让用post提交value值来获取flag。注意要用session请求方式,否则网页信息时是一次连接,post提交时又是一次连接,内容不一样。import requestsimport res = requests.Session()r = s.get("http://120.24.86.145:8002/qiumingshan/")searc...原创 2019-08-10 08:56:51 · 621 阅读 · 0 评论 -
BUUCTF web WarmUp
WarmUp打开网页一个滑稽,看源码,发现注释有source.php搜索此目录下的source.php文件,发现php代码。最开始的类emmm就放在哪里,在后面才会调用里面的函数。接着往下看传参file不为空,并且是字符串,并且经过了emmm::checkFile函数处理后结果都为true,才会把flag引入。checkFile会截取file中?之前的部分,看是否在白名单里面;第二次会进...原创 2019-08-19 20:12:07 · 255 阅读 · 0 评论