- 博客(87)
- 收藏
- 关注
原创 攻防世界-lottery [git泄露] []
注意这里是 == 弱类型比较,只要比较和win_numbers的内容相不相同,利用php弱类型比较时布尔值的转换。本来是扫文件扫出来 /.git 然后利用GitHack获得源代码的,这里我直接把附件里的源代码下载下来了。这个是字符串的形式,由于我们要上传七个true,将字符串形式改为数组形式。一打开界面是一个买彩票的题,好有意思,需要足够多的钱才能购买flag。-1和其他非零数字将视为true。
2025-03-31 21:41:34
160
原创 [NCTF2019]True XML cookbook[XXE] [内网探测] [网络ip相关知识]
一模一样的登录界面我直接故伎重演但是并卵(话说XXE注入之前好像其他博客都加上了<?>,但是不加好像也没有什么问题🤔)网上看别的师傅wp才知道还考了内网探测,可惜我啥也不懂.....
2025-03-31 20:58:53
924
原创 jarvisoj API调用 [JSON格式变XXE]
题目要求:请设法获得目标机器 /home/ctf/flag.txt 中的flag值。学习了个很新的姿势:可以把JSON数据改成XML格式,再进行XXE注入。注意需要把Content-Type修改成/xml。发现这是JSON格式的数据。
2025-03-30 19:38:25
300
原创 [BJDCTF2020]Mark loves cat [git泄露][变量覆盖漏洞]
我们可以利用变量覆盖构造GET请求handsome=flag,此时通过foreach就会变成$handsome=$flag,就会把flag的值赋给$handsome。$$x的意思就是把$x的值当作变量名再新创建一个变量,$$x=$$y的意思就是,比如说传进?name=test ,此时 $x=name,$y=test ,就会让$name=$text。GET提交的键值和键名都是可控的,存在 $$ 可以实现变量覆盖。利用GitHack拿到index.php。
2025-03-30 17:07:14
338
原创 [NCTF2019]Fake XML cookbook [XXE注入]
构造payload,这样登录错误就会在<msg>里面显示用户名,但是用户名引用了XML外部实体,所以会显示file:///flag的内容。ENTITY xxe SYSTEM "file:///flag">]>定义外部实体的名字以及地址。一开始笨了吧唧的光在输入框里构造payload了,完全忘了还可以bp抓包,把<!ENTITY xxe SYSTEM "file:///flag">]>放到前面去,任意修改位置。会回显用户名,以用户名作为回显位,回显flag。
2025-03-30 12:02:56
467
原创 [GWCTF 2019]我有一个数据库1 [CVE phpMyAdmin漏洞]
target=db_datadict.php%253f ”,由于服务器会自动解码一次,所以在checkPageValidity()中,page的值一开始会是“db_datadict.php%3f”,又一次url解码后变成了“db_datadict.php?漏洞点在于,如果我们传入二次编码的内容,经过服务器url解码, checkPageValidity()url解码以后变成了符合白名单内容的名字,就能执行include文件,但是实际上这个$page的内容却不是白名单里的文件名。访问/phpmyadmin。
2025-03-30 08:41:28
495
原创 [GXYCTF2019]禁止套娃1 [GitHack] [无参数RCE]
session_start() 启动会话成功以后会返回bool值true,这个值传入到session_id()中没有什么实际意义(不是id),所以session_id()会当作没有参数传入并返回当前会话的id,我们可以通过操纵当前会话id来实现highlight_file文件读取。session_id()如果传入参数时候会设置当前会话id(设置的值就是传入的参数),如果不传入参数的时候会返回当前会话的id。current() 返回数组内部指针当前指向的元素值(默认指向第一个元素)
2025-03-29 17:54:04
761
原创 [网鼎杯 2020 白虎组]PicDown1 [反弹shell] [敏感文件路径] [文件描述符] [bash重定向]
非预期解:url=/flag 出flag网站功能: 读取passwd 读取环境变量 读取启动当前进程的完整命令读取app.py文件:补充一点urllib的知识python2中的关于文件描述符文件描述符是什么:文件描述符(File Descriptor)是操作系统分配给已打开文件的“临时编号”(类似你去银行办事时拿到的排队号码)。程序通过这个编号操作文件(读/写)。当一个程序(如 Python 脚本)打开了一个文件(如 ),但未显式调用 或未使用 语句自动
2025-03-24 21:26:38
1102
原创 CTF【WEB】学习笔记1号刊
curl www.xxx.com:查看服务器响应返回的信息curl -I www.xxx.com:查看响应的文件头一、cmd执行命令ipconfig:ip地址配置等;二、 Kali操作1.sudo su;3.search ms17_010 永恒之蓝;4.设置必选项:RHOST代表你要攻击的对象 LHOST代表你是谁payload攻击完成后你想干啥。
2025-03-23 23:16:28
948
原创 [GHCTF 2025]ez_readfile
题目:看起来挺简单,网上搜了个md5绕过就绕成功了,但是我始终找不到flag在哪里最后实在受不了看了wp,我只能说给我八百年我也找不到。
2025-03-22 16:14:24
579
原创 [GHCTF 2025]Escape![字符串逃逸] [php死亡代码绕过] [RCE]
扫出来一大堆东西,然后一个都点不进去,最后发现附件里就有源代码。。。
2025-03-22 14:41:26
334
原创 KMP算法
KMP用于优化字符串匹配,通过先对模式串操作,然后在模式串和主串比较的时候就会减少那些不必要的比较操作就是计算模式串的subnext[]数组,subnext[j] 表示的是前 j-1 位这个子串里面, 前k个字符和后k个字符相等,subnext[j] 保存的就是这个k的最大值。
2025-03-21 22:58:31
347
原创 [GHCTF 2025]Popppppp[pop链构造] [php原生类的利用] [双md5加密绕过]
也就是说这里如果自己设置一个属性,键值和键名都是我们来定义,就用到了php原生类。这个一开始真没看出来是原生类的利用,光知道call_user_func()了。array_walk()用于遍历数组并对每个元素执行自定义的回调函数。:会被保留,键名为属性名,键值为属性值。爆破得 abe2 可以。(空字符标记),例如。
2025-03-20 19:23:34
557
原创 [GHCTF 2025]Goph3rrr [127.0.0.1绕过][env命令查找flag]
找了半天才知道,原来是%0d%0a写成了%0a%0d,呵呵。
2025-03-18 21:57:00
221
原创 [GHCTF 2025]GetShell
定义环境变量LFILE,指向受保护文件/flag,后续可以通过$LFILE引用该路径,避免直接硬编实际命令在蚁剑终端输入。
2025-03-12 10:48:54
761
原创 CTF代码学习日记 Python
在Python中,os是一个内置的标准模块,主要用于与操作系统进行交互,提供了许多操作文件、目录、进程等的功能。此时如果_file_list=os.listdir(dir_path)这里_file_list就是一个数组。以及反复出现多次的os.popen()用于在Python程序中执行外部命令,并获取命令的输出结果。
2025-03-11 21:01:32
226
原创 XXE 目录
DOCTYPE定义了XML的“说明书”,定义了它的结构和规则,如果这个说明书引用了外部指南(比如说详情给请见xxxx),就会导致XXE。
2025-03-11 20:46:48
385
原创 [GHCTF 2025]UPUPUP【.htaccess绕过 XBM/WBMP】
题目:这种文件上传可以先尝试一下让他报错,发现是apache的服务器,就想到.htaccess上传了 .htaccess 和 .jpg 都没啥用,这时候应该想到后端采用了getimagesize和exif_imagetype限制在文件上传时,,所以我们图片马的开头要加上 GIF89a,但是如果我们在. htaccess 文件中也加入 GIF89a 的话会导致. htaccess 文件无法生效,所以我们要用别的方法。
2025-03-11 19:35:15
343
原创 攻防世界 file_include【php://filter详解】
1.遇到服务器过滤或者限制访问的时候,需要加上请求头模拟浏览器访问,绕过基础的反爬检测,并设置timeout=10,十秒钟连接不上就拉倒。直接用php://filter读取文件,发现是被过滤了,此时应该找别的方法或者绕过。2.不一定非要看返回消息中有什么特殊的字段,可以直接打印出来返回消息长度。语句块中的代码执行时,如果发生了异常,程序的执行流程会立即跳转到对应的。语句块进行异常处理;一开始写的垃圾代码,啥也不会上来就干,结果卡死了。语句块用于包裹可能会抛出异常的代码。语句块中的代码都会被执行。
2025-03-10 21:08:19
370
原创 [NewStarCTF 2023 公开赛道]ez_sql1 【sqlmap使用/大小写绕过】
题目:发现id处可以sql注入:虽然输入id=1';#没什么回显,但是知道这里是字符型注入了。
2025-03-10 11:58:31
360
原创 [极客大挑战 2019]FinalSQL【SQL布尔盲注】
用户名和密码处都试过了,过滤了很多,包括 ’ ,select,databases,tables等等,反正能用的都过滤了。5)发送url get请求格式 r=requests.get(url,params=temp)3)赋值temp字典内容: temp["id"]="xxxxxxxxxxx"1)声明一个字典 temp={"id":""} 存储get发送的请求参数。后来看wp才知道,原来是需要在id处注入,具体注入方法和这个一样。表明flag 不在这个表里面。2)url中要把?五个小框框什么也没有。
2025-03-10 11:12:51
520
原创 二次SQL注入
用户向数据库存入恶意数据,当数据被送进数据库的时候,会对存入的信息进行转义然后再储存,但是存进去的数据会再次被转义回来(也就是原样不变的存进数据库里,只是害怕攻击者在存入数据的时候捣蛋而已),一般默认数据库里的数据都是安全的,所以当用户再次访问时,要从数据库里拿出数据来,这时候就不会再进行转义处理,此时会引起SQL注入。
2025-03-09 22:12:49
663
原创 SQL注入目录【绕过+布尔时间脚本】
利用show爆出表名,列名接下来有四种方法查询列(以强网杯随便注为例,查询表名为1919810931114514中的flag列):注意使用 ` ` 包裹全是数字的表名构造其中 PREPARE 语句:用于创建一个预处理语句(将 SQL 语句模板化),它允许在执行 SQL 之前先进行预编译,然后可以通过传递参数来多次高效地执行这个预编译后的语句。EXECUTE语句:执行之前通过 PREPARE 语句创建好的预处理语句对象。
2025-03-09 21:52:55
856
原创 【未完成】VTCTF2025 奶龙回家【SQLite时间盲注】
select hex(group_concat(username)) from users:从users这张表中显示出用十六进制表示的连接在一起的字符串username。这里{0}和{1}都是占位符,后面用format(i,chr(mid))分别替换0和1的位置(其中0和1对应format中的第x个参数)创建数据库命令执行后就会在当前目录下生成对应名称的文件,之后的数据操作都是对该文件的操作。过滤掉了union,sleep,空格,=,or。sqlite的每一个数据库就是一个文件。
2025-03-09 17:59:02
274
原创 数据结构--【栈与队列】笔记
使用栈实现后缀表达式计算,其中,在后缀表达式中,输入的数字为整数,且为正数,数字、符号之间用空格隔开,整个后缀表达式用“#”表示结束。1.写一个栈的结构,这里面设置栈结构(a[]数组),index索引指向目前栈顶,并包含入栈、出栈、显示栈顶字符操作。要注意的问题是cin可以隔断输入的string b,此时比如单个输入的"11"就是要给字符串b。6 2 3 + * 5 / 7 - #(注:对应的中缀表达式是6*(2+3)/5-7)11 2 3 + * #(注:对应的中缀表达式是11*(2+3))
2025-03-09 16:53:40
327
原创 C++遇到的问题
原题是利用顺序表和链表实现两个多项式的相加在读取时:我写的代码是这样是错误的,会一直让你输入字符,即使点了空格键也没用第一个多项式的输入是3 4 2 3 1 2,第二个多项式是-2 3 4 2 5 1 6 0。当用户使用第一个循环读取时,第一个循环会读取3 4,然后2 3,然后1 2,然后继续读下去,也就是说,原代码中的第一个循环会一直读取所有输入的两个整数,直到输入结束。后面的输入可能还在输入流中。解决方法:用string输入+用sstream库是 C++ 标准库<sstream>
2025-03-09 16:49:33
1012
原创 数据结构--【顺序表与链表】笔记
head 是指向单链表开始结点的指针,tail 是指向单链表尾结点的指针,对链表的访问只能通过头尾指针进行操作。分别表示当 i 取 2∼n 时,对应的 min1≤j<i∣Ai−Aj∣ 和 Pi 的值。2.所有元素都会根据元素的字典序进行排序,先比较第一个,第一个一样大就比较第二个,默认从小到大。若最小值点不唯一,则选择使 Aj 较小的那个。1.set中每一个元素的键值都唯一,所以在向set中插入相同的数据的时候,会插不进去。头结点:虚拟结点,值被忽略,不被看做表中的实际元素,避免对空表的处理。
2025-03-08 15:44:23
1000
原创 BUU44 [BJDCTF2020]ZJCTF,不过如此1 [php://filter][正则表达式get输入数据][捕获组反向引用][php中单双引号]
题目:我仿佛见到了一位故人。。。也难怪,题目就是ZJCTF按要求提交/?text=data://,I have a dream&file=next.php后:......不太行,好像得用file=php://filter/convert.base64-encode/resource=next.php耶?那 file=php://filter/convert.base64-encode/resource=next.php 和 file=next.php在这里有啥区别啊。
2025-03-04 19:47:27
704
原创 BUU43 [BJDCTF2020]The mystery of ip 1
实际用途就是伪造ip地址,比如说访问某些只有特定ip才能访问的网站的时候,如果伪造XFF地址就能骗过服务器进而访问。如果请求经过多个代理,该字段会按照顺序依次记录每个客户端和代理的 IP 地址,用逗号分隔,如。先修改X-Forwarded-For字段的值,发现可以修改,存在XFF注入。当客户端请求经过代理服务器时,代理服务器会将客户端的 IP 地址添加到。修改字段为{1+1},发现存在SSTI注入。转发后,服务器接收到的请求中。例如,当客户端 IP 为。搞错了,再来,直接简单粗暴。,请求经过代理服务器。
2025-03-03 19:48:28
301
原创 42 session反序列化漏洞
当在php.ini中设置session.upload_progress.enabled = On的时候,PHP将能够跟踪上传单个文件的上传进度。当上传正在进行时,以及在将与session.upload_progress.name INI设置相同的名称的变量设置为POST时,上传进度将在$ _SESSION超全局中可用。
2025-02-27 18:06:06
710
原创 BUU41 [GYCTF2020]FlaskApp1【SSTI】
题目:加密处没啥事,但是解密的地方提交{{7*7}}就会返回报错界面,顺便把代码也爆出来了先将字符串 text编码为字节对象,然后使用函数对这个字节对象进行 Base64 解码操作,报错的原因也就是解码没成功,将{{7*7}}进行base64编码后输入可能是过滤了{{ }} 把 {{ }} 去了还是nonono试试7+7,成功。。?具体流程:1.套模板,发现被过滤了字符,查看源代码2.列目录。
2025-02-25 12:54:48
959
原创 BUU40 [CSCCTF 2019 Qual]FlaskLight1【SSTI】
__base__表示追踪它的父类,.__subclass__()表示列出它的子类,而[80]表示它的第八十个子类,.__init__在创建类的新实例时自动调用,用于初始化对象的属性,每个类方法(包括__init__)都是一个对象,__globals__就是__init__下的方法(子类)实际上就是search={{"".__class__.__base__.__base__.subclasses()[78].__init__.__globals__}}测试一下search=glo'+'bal。
2025-02-24 20:43:10
697
原创 【未完成】BUU20 [HCTF 2018]admin1
题目是一个注册或者登录界面,注册的时候先试着输入用户名admin,然后发现flag应该就在admin账号里头,尝试去爆破,成功发现密码123(注意这里需要看Length而不是Status code)
2025-02-22 19:17:42
931
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人