自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 NSSCTF刷题笔记pwn10——[2021 鹤城杯]babyof

朴实无华的栈溢出,没有system函数,也没有/bin/sh字符串,也没有给libc文件。这是通过libcsearcher获取偏移的代码,可惜在这题好像行不通,但是思路是这样子的。通过泄露目标的函数地址,我可以确定目标使用的是这两个libc文件。然后是修改过后的代码,基本上没差。但是我们有puts可以泄露数据。

2024-02-02 20:35:37 306

原创 NSSCTF刷题笔记pwn9——[GFCTF 2021]where_is_shell

然后首先要注意这是64位的程序,参数会依次存放在rdi,rsi,rdx,rcx,r8,r9这6个寄存器中,多的存放在栈中。$0也是可以被当做shell执行的,因此我们去掉前面一位,取出shell的地址是0x400541。然后我们还需要一个ret的地址,否则本地能打通,远程打不通。存在一个提示函数,代码报红,说明存在问题,看一下机械码。有system函数,但是不存在/bin/sh字符串。可以看到\x24 \x30对应的是$0。main函数,存在很明显的栈溢出。找到地址 0x4005e3。

2024-02-02 16:47:15 449 1

原创 NSSCTF刷题笔记pwn8——[NISACTF 2022]ezpie

既然泄露了main的真实地址,那么我们通过偏移也能知道shell的真实地址。所谓pie保护啊,就是data、text段载入内存的时候,地址会被随机化。main函数,里面调用了vuln函数,并且泄露出自己main函数的地址。内存中main地址 + 偏移 = 内存中shell的地址。文件中shell地址 - 文件中mian地址 = 偏移。看了一下pwn的保护,开启了pie保护。shell函数,是我们要获取是后门。知道了这些,那么就可以写代码了。vuln很显然是个栈溢出。

2024-02-02 16:01:09 276 1

原创 NSSCTF刷题笔记pwn7——[watevrCTF 2019]Voting Machine 1

main函数,打印一串大小,看到gets函数,存在栈溢出。可以看到输入的AAAA距离返回地址差10个比特。找到一个读取flag.txt的函数。那么写代码,控制流到这个函数试试看。看了一下没有找到system函数。

2024-02-02 15:30:52 405

原创 NSSCTF刷题笔记pwn6——[NISACTF 2022]ezstack

这个shell会使用system函数打印一串内容,并且发现我们读入的数据大于buf的大小,存在栈溢出。栈溢出,system函数,/bin/sh字符串,那么万事已经具备了,开始写脚本。按下shift+12,在字符串界面找到/bin/sh。用ida打开,有一个shell函数。

2024-02-02 15:10:22 234

原创 NSSCTF刷题笔记pwn5——[BJDCTF 2020]babystack2.0

在gdb中,我们可以看到栈溢出的大小是16+8,24字节。使用gdb动态调试,找到栈溢出的大小,ida提示是4。在read中参数nbytes是一个无符号的整数。那么即可为我们写入255个数据,就完成栈溢出。我们发现对比时nbytes是一个整数。估计栈溢出就发生在第二个参数传入时。首先问我们要一个数字,要小于10。而我们最多只能写入9个长度的数据。-1在无符号数中代表255。然后再问我们要一个值。

2024-01-30 19:17:14 284

原创 NSSCTF刷题笔记pwn4——[NISACTF 2022]ReorPwn?

下载好文件,直接运行,发现就可以执行命令了。那这里介绍一个可以颠倒字符串的命令:rev。那么很简单就做出来了。

2024-01-30 18:42:32 175

原创 NSSCTF刷题笔记web23——[MoeCTF 2022]baby_file

直接php://filter读文件。看上去是个很简单的文件包含。目录扫到flag.php。

2024-01-26 15:15:29 215

原创 NSSCTF刷题笔记web22——[HCTF 2018]Warmup

hint.php是白名单中文件,同时../../../../../绕过hint.php去根目录读取文件。3,然后再看看截取的内容在不在白名单。前面的内容,也就是文件名。1,看一下在不在白名单中。第一个,我们传入的file不能为空。第三个,调用类内部的函数进行检查。第二个,传入的是字符串。提示我们flag的位置。

2024-01-26 15:03:16 224

原创 NSSCTF刷题笔记web21——[SWPUCTF 2022 新生赛]ez_ez_php(revenge)

php://filter/convert.base64-encode/resource=flag.php秒了。垂死争扎了一下,正确flag在/flag。看代码,file开头必须是php…

2024-01-26 14:41:06 252

原创 NSSCTF刷题笔记web20——[HNCTF 2022 Week1]Interesting_include

没错,不是把flag过滤了,而是没有flag就会退出…传入的内容如果没有flag字符串,那么就退出。

2024-01-26 14:33:23 63

原创 NSSCTF刷题笔记web18——[鹏城杯 2022]简单包含

第一个条件,php://input应该是代表我们post传入字符串的数量,要求这个数量要小于800。也给出了提示,我们尝试下php://filter伪协议。那么我只需要第一个条件不满足,就可以包含flag了。第二个条件,就是传入的内容包含flag。需要同时满足两个条件才会报防火墙。尝试读取index.php。解码后得到了真实的代码。先用python生成。

2024-01-26 14:13:38 157

原创 NSSCTF刷题笔记web17——[LitCTF 2023]作业管理系统

直接上传、抓包、改后缀、写木马一气呵成。admin,123456试试看,失败。admin,admin试试看,成功。5.查看源代码有没有泄露的接口。开局要登录的几个办法。

2024-01-26 12:04:14 105

原创 NSSCTF刷题笔记web16——[LitCTF 2023]1zjs

然后就想着在每个文件里搜索flag,无果,然后再搜一下有没有php文件的。吐槽一下,和开局的魔方啊,ts啊什么的半毛钱关系没有,想得太复杂了。打开是一段加密后的数据,加密方式叫jsf**k。直接在ctrl+a全部复制到控制台就可以解码。那么先从这个js文件下手吧。这个文件可能是魔方的源代码。ts大概就是js的优化版本。然后啊,然后依然是颗粒无收。打开网页是个3d魔方游戏。再看看三个ts后缀的文件。然后就找到了,直接访问。

2024-01-26 11:54:03 255

原创 NSSCTF刷题笔记web15——[SWPUCTF 2021 新生赛]finalrce

然后通过管道符传入到一个txt文件,我们再浏览器访问对应txt文件就可以看到数据了,因为exec在php中是无回显的执行命令函数。难道还可以用''绕过吗,如果可以,那不就有点扯了,因为如果真的有一个叫flllll''aaaaaaggggggg的文件那怎么办?那么后面的参数,要读的文件flllllaaaaaaggggggg,被过滤了la。如果真的有个叫flllll''aaaaaaggggggg怎么办,在本地试试看吧。于是就去看了看别人的wp,发现大家在ls中间加入''变成l''s可以执行命令。

2024-01-26 10:49:30 254

原创 NSSCTF刷题笔记web14——[SWPUCTF 2021 新生赛]sql

粗劣试了一下,比较关键的是过滤了空格和等于。传的参数是wllm在源代码中有提示。第二步构造union语句查询数据库。使用mid函数对内容进行截取即可。然后我们再使用sqlmap跑跑看。空格我们可以用/**/代替。然后只露个头,我们截取一下。可以获取数据得到flag。第一步先确认字段数量。第五步,获取flag。

2024-01-26 10:13:06 301

原创 NSSCTF刷题笔记web13——[LitCTF 2023]Ping

毫无波动,那么肯定就是前端了,直接进burp吧。跳出弹窗,推测是前端验证,看眼网络请求。结果后端啥也没过滤,直接拿到了flag。让我们执行ping命令,使用|试试看。

2024-01-26 09:06:53 112

原创 NSSCTF刷题笔记web12——[SWPUCTF 2021 新生赛]pop

简单了解下什么是反序列化,就是把一个对象或者字符串数字之类的东西,变成一条固定形式的字符串,有点类似json,用来传递数据,而且序列化出来的字符串可以通过反序列化重新变成原来的东西。说白了就是把一个对象也好,一个数组字符串也罢,打包起来,变成字符串,需要的时候反序列化变回来。运行就执行 以字符串输出就执行 获取flag。那么我们这题的构造链条是这样的。这是一题构造反序列化链的题目。

2024-01-26 08:59:00 155

原创 NSSCTF刷题笔记re6——[SWPUCTF 2021 新生赛]re2

首先确定加密后的flag就是ylqq]aycqyp{然后就得到了一个不像flag的flag。中间那串for循环就是加密过程。直接写python脚本逆推。分析main函数代码。其实就是一题凯撒加密。

2024-01-25 20:14:26 192

原创 NSSCTF刷题笔记re5——[SWPUCTF 2021 新生赛]简简单单的解密

然后了解到这个密码是可以直接解的,把中间那串看不懂的直接复制过来,flag修改为enc直接解密即可,这种加密方式还得记一下才行,以免以后遇到,认不出来。首先看看enc,enc是一串url编码的内容,因为解出来会有些不可见字符,所以还是用python中的url解码比较好。下载附件,看到是一长串python代码,不得不说真的很绕,看着头就很大,学逆向怎么还得会密码呢(悲。

2024-01-24 20:08:54 436

原创 NSSCTF刷题笔记re4——[LitCTF 2023]世界上最棒的程序员

那么到这flag也已经在我们眼前了,但还是简单看看代码的逻辑。输入两个数字,如果两个数字加起来等于1,那么就返回flag。调用了start函数,那么也直接进去看看。直接进ida看main函数。

2024-01-24 19:39:09 493

原创 NSSCTF刷题笔记re3——[NSSCTF 2022 Spring Recruit]easy C

我分析过很多ida反编译的伪c代码,这是第一次分析真正的c语言。然后将每一位先加1,再异或一个2。首先判断字符串是不是7位的。前面的输入输出就不看了。总之先把代码通读一遍。

2024-01-24 19:30:44 452

原创 NSSCTF刷题笔记re2——[SWPUCTF 2021 新生赛]re1

这边把数字转换成字符串,那么很明了,他的意思就是将3的值变成e。strcpy是将字符串写入str2这个变量里面。下载附件,直接用ida打开,看看什么来头。这么简单就不写脚本了吧,手动替换一下即可。直接在f5在main函数中分析代码逻辑。4的值变成a,那么答案就出来了。str1是我们输入的内容。

2024-01-24 19:17:22 347

原创 NSSCTF刷题笔记re1——[SWPUCTF 2021 新生赛]简简单单的逻辑

3.第三步首先将真实的flag与刚才运算的数字就行了异或预算,并转换成16进制,再把16进制转换成字符串。那么[2:]的作用就是去掉前面的0x保留内容,zfill是用于填充0的函数,当字符串不满2个的时候,在前面填充一个0。第一个数,47的二进制是00101111,>>4就是向右移4位,那么久变成了10转换成十进制就是2。写完发现,第二步不需要逆向,不过了解下过程也是蛮重要的,这种移位的题目出现还是很多的。第二个数,0xf的二进制是1111,&运算符就是两个二进制作比较,全为1的则1。

2024-01-24 19:09:13 413

原创 NSSCTF刷题笔记pwn3——[CISCN 2019华北]PWN1

我们直接覆盖掉返回的地址,返回的地址我们填从result=system("cat /flag")开始即可。这里是ida识别出来的v1距离rbp的长度是0x30,然后程序是64位的需要距离返回地址还差8字节。使用ida打开,这里要判断v2要等于11.28125,但是v2压根就不能被改变。gets是栈溢出漏洞的常客了,因为他不会限制我们输入多少内容。差不多就是这里: 0x4006be。知道了这些后,开始写exp。

2024-01-19 19:54:20 435 1

原创 NSSCTF刷题笔记pwn2——[LitCTF 2023]只需要nc一下~

连题目的附件都没给,只留下这段提示,那么拿出nc连接试试看,是不是真的有那么简单。有点像在玩躲猫猫,这个123456是假的,根据提示flag应该藏在环境变量中。/etc/profile,不过cat之后会跳出,不懂什么情况,是文件太大了吗。按理来说我们也可以查看环境变量的配置文件。也可以使用env命令查看所有的环境变量。我们可以echo $FLAG。这题的考点是环境变量。

2024-01-19 13:28:24 370 1

原创 NSSCTF刷题笔记pwn1——[SWPUCTF 2021 新生赛]gift_pwn

最后加上我们的返回地址,是上面找到的gift的地址,payload就完成了。ida有帮我们识别出来,距离rbp 16字节,我们要再加上我们的8个字节。首先找到我们要返回的gift的地址 0x4005b6。有一个栈溢出,和一个调用系统bash的命令。_system可以调用系统命令。把附件下载下来拖入ida运行。vuln可能存在漏洞的函数。不过要注意这是64位的程序。直接发送获取shell即可。gift题目中的主要函数。

2024-01-19 13:12:22 631 1

原创 NSSCTF刷题笔记web11——[SWPUCTF 2021 新生赛]easyupload1.0

修改png后缀为php发现可以上传。直接在内容中写入一句话木马即可。这个用burp抓包会方便很多。访问路径,执行命令即可。

2024-01-18 22:58:22 508 1

原创 NSSCTF刷题笔记web10——[SWPUCTF 2021 新生赛]ez_unserialize

进行代码审计,也是非常非常的简单,只需要构造一个序列化后的字符串,然后替换其中的数据即可。复制上面类的php代码,替换其中的用户名以及密码进行序列化,执行即可得到payload。源代码提示了这一串数据,是robots.txt的格式。上来问我题目在哪,一般都是直接先看源代码。直接访问robots.txt。

2024-01-18 22:49:34 506 1

原创 NSSCTF刷题笔记web9——[SWPUCTF 2021 新生赛]babyrce

代码的意思也很简单就是,cookie中带有admin=1,就包含next.php文件。下一关代码,获取url,如果匹配到空格就结束,就是说命令执行不能包含空格。空格绕过的方式有很多,我随便提一个%09也就是我们的tab键。

2024-01-18 22:42:06 516 1

原创 NSSCTF刷题笔记web8——[第五空间 2021]WebFTP

扫目录发现了.git文件夹和phpinfo.php。然后直接在phpinfo中找到了flag。有点迷惑行为,可能这题的考点是目录爆破吧。5.看前端源代码有没有泄露些内容。3.webftp2011的漏洞。进去是发现是一个登录界面。

2024-01-18 22:33:36 548 1

原创 NSSCTF刷题笔记web7——[SWPUCTF 2021 新生赛]Do_you_know_http

记得要在a.php中修改,对使用hackbar的人来说算是一个小坑,没发现他跳转了。这个一般来说是修改X-Forwarded-For为127.0.0.1。在http中辨识浏览器的值是http头中的User-Agent。一上来就提示你要使用WLLM浏览器。下一个提示你需要在本地读这个文件。只需要在数据包中修改即可。

2024-01-18 22:21:38 469 1

原创 NSSCTF刷题笔记web6——[SWPUCTF 2021 新生赛]caidao

题目也是非常的简洁明了,考点可能是菜刀的使用,所以稍微绕一下,用菜刀来get shell。直接输入网址以及密码和脚本格式,就可以获取shell。caidao是一款shell管理工具。

2024-01-18 22:14:13 546 1

原创 NSSCTF刷题笔记web5——[SWPUCTF 2021 新生赛]easyrce

没有做过滤,传入的url的值 直接当做php代码执行。代码还是那么的朴实无华,我愿称之为真正的easy。

2024-01-18 22:08:26 390 1

原创 NSSCTF刷题笔记web4——[SWPUCTF 2021 新生赛]easy_sql

通过1' and 1=1 --+ 和 1' and 1=2 --+,判断存在字符型注入。最后是枯燥的在information_schema库中找对应的表名和字段名。传入1' order by 4 --+爆错,判断只有三个字段数。查看源代码中的提示,先传入一个1试试看。爆表,test_tb,users。通过联合查询判断我们的注入点。爆库,test_db。

2024-01-18 22:04:08 551

原创 NSSCTF刷题笔记web3——[SWPUCTF 2021 新生赛]include

考点是,绕过php文件被包裹会当做后端语言执行,需要通过伪协议base64加密的方式提取出来。代码如上,没有做任何的过滤。

2024-01-18 21:52:32 521

原创 NSSCTF刷题笔记web2——[SWPUCTF 2021 新生赛]easy_md5

代码如上,需要我们传入的name和password不相等但是md5加密后要全等。可以通过php的漏洞,传入一个数组绕过。

2024-01-18 21:48:26 506

原创 NSSCTF刷题笔记web1——[SWPUCTF 2021 新生赛]jicao

代码审计,需要通过post传入id为wllmNB的值,以及get的方式传入一串json数据,通过解码后,json中的数据x要等于wllm。json的格式为{"key":"value"}主要考点可能是这个json数据格式。

2024-01-18 21:44:52 369

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除