- 博客(54)
- 收藏
- 关注
原创 数值计算方法
数值计算方法数值计算方法数值计算方法数值计算方法数值计算方法数值计算方法数值计算方法数值计算方法数值计算方法数值计算方法数值计算方法。
2023-05-30 21:48:03
197
原创 [HZNUCTF 2023 preliminary]ppppop
base64解密后得到序列化的字符串:O:4:"User":1:{s:7:"isAdmin";很简单的pop链构造,class A __destruct()->class B __call()通过抓包可以发现base64加密的user cookie。通过payloadpost传参获得flag。1.代开环境,发现一片空白。将零改为一后可以显示源码了。
2023-04-22 13:40:36
444
原创 [NCTF 2019]True XML cookbook
不能直接在根目录读取flag,但可以通过/etc/hosts获取内网。再通过扫描c段获得flag。
2023-04-21 22:22:44
380
原创 [HNCTF 2022 Week1]Challenge__rce
由于php变量没有赋值时默认是零,且数组与字符串拼接时返回Array,由此由A自增可以得到全部26位字母通过拼接构造payload.对字符串进行异或操作时,php解析时会将异或结果自动转换为字符串,以其给$_赋值,再通过拼接获取payload。也就是对$a进行取反操作,形成非常规字符绕过限制,在浏览器解析的时候,再还原成原来的payload.而在本题,由于长度限制,所以可以构造参数,再上传参数减少长度。无参RCE,主要方法有三种,取反,自增,异或。这里因为~和^都被过滤了,所以考虑自增。
2023-04-17 20:41:23
816
1
原创 [GKCTF 2020]ez三剑客-ezweb
是输入url的题目,基本可以判断是ssrf的题目,尝试用file伪协议读取index.php源码.发现被过滤了,尝试file:/、file:///,成功获得index.php的源码。盲猜redit默认端口6379和mysql默认端口3306,发现redit服务有回显。利用redis服务未授权访问漏洞在根目录创建shell.php。查看页面源码,发现可以进行secret传参,获得内网信息。用薄荷扫描内网c段寻找存活主机,发现提示。访问/shell.php得到flag。
2023-04-16 18:53:43
294
原创 [羊城杯 2020]easyser
需要绕过Yasuo,需要进行变量覆盖,接着利用file_put_contents危险函数写入shell,利用string.strip_tags去除php标签,将写入的shellbase64加密所以绕过string.strip_tags,在进行base64decode达到写入shell的目的。可构造本地ip127.0.0.1进行ssrf伪造,从而读取任意文件。2.用dirsearch扫到robots.txt。接着利用arjun爆出参数为c。转到star1.php。用蚁剑连接得到flag。
2023-04-13 16:48:53
136
原创 [羊城杯 2020]Blackcat
第一个hash_hmac的密钥是环境变量clandestine的值,如果data传入的值为数组,那么就会返回NULL。那么第二个hash_hmac的密钥就是NULL,返回的值就只跟data有关,就是我们可控的了。还用了echo,是有回显的,但是exec只返回命令执行结果的最后一行内容。最后的命令执行这里出不了网,使用;sha2和md5相似,弱相等能用数组绕过,可以本地执行hash_hmac函数,然后让。ls是多行显示,所以只能显示一行的内容。1.打开环境,在源码处有提示。2.进入.mp3发现源码。
2023-04-09 18:43:47
192
原创 [NCTF 2018]Easy_Audit
_SERVER:PHP的内置变量,是一个数组,其中QUERT_STRING是指问号之后的所有字符串,其不会对参数进行url解码,可以采用url编码绕过。$_REQUEST:PHP的内置变量,是一个数组,保存传递的参数,它的特性是如果get,post一起传参,则会优先post传参,可以由此进行变量覆盖。第三层:substr在原有参数长度不足时返回false,md5在处理数组时也会返回false.第四层:从尾部匹配字符串且不等于该字符串。第五层:data://伪协议写入数据绕过。
2023-04-09 14:29:51
224
1
原创 [HNCTF 2022 WEEK2]Canyource
也就是说,题目要求payload格式为()的嵌套,因为他会递归匹配,判断[...]()替换为空后的结果是否等于;2.这道题的过滤并不严格,导致了payload的多样性,在解题之前,需要了解以下函数。3.在做题之前,再讲讲题目中的正则表达式。1.打开环境,发现就是无参rce的题型。
2023-04-08 15:56:42
623
原创 [SWPU 2018]SimplePHP
而在upload_file.php中,include了class.php,在class.php中有危险函数file_get_content,构造pop链C1e4r->destruct=>Show->__toString=>Test->__get->file_get(),其中__get在类被[]引用时会触发,且$key=source。在查看文件区域发现?file=结果有文件任意读取的漏洞,可以获取相关文件源码。改名上传后用phar://伪协议读取flag。提示flag在f1ag.php里。
2023-04-04 22:10:17
121
原创 [NSSRound#1 Basic]sql_by_sql
所以注册用户admin'--并修改密码就可以登录admin,在home页面的查询有两种回显,exist或no user,显然是布尔盲注,需要注意的是数据库是sqlite,查询语句不太一样。1.打开环境,随便注册一个用户。因NSSCTF收费而没有截图。在修改密码的源码处获得提示。
2023-04-04 00:14:02
171
原创 [BJDCTF 2020]ZJCTF,不过如此
e模式下的preg_replace可以让第二个参数'替换字符串'当作代码执行,但是这里第二个参数是不可变的,但因为有这种特殊的情况,正则表达式模式或部分模式两边添加圆括号会将相关匹配存储到一个临时缓存区,并且从1开始排序,而strtolower("\1")正好表达的就是匹配区的第一个,从而我们如果匹配可以,则可以将函数实现。运用data伪协议写入数据,filter伪协议读取next.php源码内容。可值一提的是,在本地环境复现时,因为高版本的php已经废弃了改正则模式。是正则模式/ei的漏洞,
2023-03-25 18:37:45
138
原创 [TQLCTF 2022]simple_bypass
可以发现file_put_contents危险函数,注册的信息会写入php文件,所以考虑可控的四个参数,user,password,website,punctuation,其中punctuation过滤了字母数字,但长度限制较为松,从而可以实现任意文件读取,可以获得index.php,template.html,get_pic.php的源码。查看好康的,审查元素,发现是base64加密 ,且使用了get_pic.php方法。可以用自增来getshell.
2023-03-24 15:48:12
248
原创 [GXYCTF 2019]BabySqli
2.此时可以利用sqli的特性,当查询一个不存在的表时会创建一个虚拟的表,且当查询原题源码时发现它会将pwMD5加密与库中数据比较,在sqli中,数据库密码一般以MD5加密或明文存放。过滤了(),database(),无法进行爆库,所以只能想是否存在admin用户,发现回显wrong pass.1.打开环境,显然是sql注入。
2023-03-23 21:02:37
396
原创 [NCTF 2018]小绿草之最强大脑
3.需要用s=requests.Session()来保持会话的连续性。2.intval处理21位以上的数会返回固定的值来防止溢出。需要用time.sleep()来防止访问过快或过慢。
2023-03-22 15:28:52
693
原创 [NISACTF 2022]hardsql
关键是它要求强比较相同,但弱比较不同,所以要用到Quine,Quine是一种自生产技术,可以使数据库输入和输出相同。3.当失败时会回显nothing found,以此可以爆破密码。爆破出密码登入后没有给flag,而是给了源码。1.打开环境,发现一个登录窗口。
2023-03-20 19:12:50
455
原创 [GFCTF 2021]Baby_Web
首先index.php调用display方法,$filename->$template,在extract函数(暗示了可以变量覆盖)之后,调用getTempName方法,$space->$dir,且要求$dir=admin。在listdata中发现危险函数call_user_fuc_array,首先,该函数将system数组化成$param,接着call_user_fuc_array会调用name元素的值执行命令。含有CVE-2021-41773漏洞,可以读取任意位置的文件。用dirsearch可以扫到。
2023-03-19 15:33:41
240
原创 [CISCN 2019初赛]Love Math
难点在于绕过正则,他会匹配所有字符串,只能用白名单里的字符串,重点在base_convert和dechex函数上,需要构造hex2bin函数来构造特殊字符,构造常量,利用php7的特性进行函数执行。1.打开环境,审计代码。
2023-03-16 00:26:48
56
原创 [NISACTF 2022]join-us
其实一开始想到的是布尔盲注,因为输入1会返回txw4ever,输入0返回空白,但是禁用了ascii函数,禁用了updatexml函数,但是可以使用extractvalue函数。database被禁,所以可以考虑用访问一个不存在的数据库来返回数据库。接下来column被ban了,所以用无列注入,join题目也有提示。进入登录界面,发现sql注入窗口,首先进行fuzz测试。最后用mid或reverse函数读取flag。爆出表Fal_flag,output。
2023-03-14 22:16:16
260
原创 [NSSRound#4 SWPU]1zweb
index.php中只需要绕过_wakeup魔术方法就行了,可以考虑增加自然属性个数或增加属性个数来绕过,因为upload.php会检查stub,所以压缩文件成zip(注意要用winhex改变属性个数,不然签名会改变),用phar://伪协议来读取文件。得到aa.phar.gz,改文件名为1.jpg上交,用phar读取发现签名损坏,所以要进行签名修复,phar由data,data签名(20位),和签名格式(8位)组成。可以用读取文件读取index.php,upload.php的源码。
2023-03-13 21:22:27
631
原创 [SWPUCTF 2021 新生赛]hardrce_3
disabled_function禁用了很多函数(system,exec等),但可以用file_put_contents函数绕过。逻辑本身不是很复杂,就是不准异或取反,且不能有字母数字,所以考虑用自增。1.打开环境,审计代码。
2023-03-12 20:39:14
1405
1
原创 prize_p5
2.问题出在abscond函数,它改变了序列化字符串的长度,因为序列化后会标明每个变量的长度,使得部分字符串得以逃逸,并当作序列化字符串处理,比如CTFaaa被换成hacker后,aaa得以逃逸。其实暗示了可以用原生类读取flag的位置,DirectoryIterator FilesystemIterator GlobIterator 都是可以的。突破点有两个,一个是cata参数,再者就是反序列化逃逸了。读取根目录任何带有f的文件,发现flag就在根目录。1.打开环境,审计源码。
2023-03-12 15:59:14
121
原创 [天翼杯 2021]esay_eval
查看phpinfo发现函数禁用了system函数,无法用命令getshell,所以考虑用eval函数,先用蚁剑连接,再用饶过disabled_func的插件绕过。再者是_wake up的绕过,这里有intval函数(返回数据整数部分)的过滤,所以考虑添加真实属性的个数来绕过。思路是先建一个类B,调用__destruct,使a为A类,调用__call魔术方法。1.打开环境,审计代码。
2023-03-10 00:57:15
90
原创 [NISACTF 2022]middlerce
preg_match过滤了换行符和异或符号,所以考虑利用preg_match本身回身回溯超过1000000会返回false绕过。1.eval的执行逻辑和create_function或有相似之处,绕过方式几乎一样。2.很显然需要做fuzz测试。1.打开环境,审计代码。
2023-03-08 20:57:08
488
1
原创 [NISACTF 2022]level-up
关于parse_url可以用///绕过,构造极不合理的url会使其返回false,再者,由于php的特性,所有的. [+ 会转化成_,但可以先传入[避免。查看网页源码,有disallow,盲猜robots.txt伪协议。有明显的传参()提示,用create_function绕过。1.又是套娃,php审计。
2023-03-08 17:27:02
489
原创 [NSSRound#1 Basic]basic_check
扫后门,.git啥都没有,看了write up才知道可以用nikto扫发现可以用PUT方法上传文件。访问a.php输入指令找到flag.1.打开环境,毫无头绪。
2023-03-06 16:39:30
190
原创 [NSSRound#8 Basic]MyDoor
用base64读取index.php的源码,发现可以传参N_S.S进行命令执行,由于php的特性,在后端会被规范成N_S_S。1.打开环境,审计代码,一个file后门。所以用N[S.S传参。
2023-03-05 19:39:48
464
原创 [NISACTF 2022]bingdundun~
于是想到运用phar伪协议上传zip的一句话木马getshell。(2)有可以上传压缩包的提示。1.打开环境,审计代码。是文件上传漏洞的题目。
2023-03-05 19:14:39
125
原创 [GXYCTF 2019]Ping Ping Ping
再用127.0.0.1;cat$IFS$1index.php读到index.php的源码。发现过滤了很多东西,其中flag是一个一个匹配的,所以不能用\或'绕过。用127.0.0.1;ls读取到flag.php和index.php。1.打开环境,发现考点是RCE。
2023-03-05 12:00:34
39
原创 HAED_RCE
开始以为是preg_match的绕过,试了换行符和数组绕过都没有用,看了writeup才知道是tee命令。1.linux tee命令,可以将命令写入文件,访问时即可执行并回显结果(ls |tee 1.txt)2.cat可以用tac绕过,可以在字符中间加\(转义符)或'(单引号)来绕过preg_matc。#file_get_content函数的用法可以直接输入文件路径。
2023-03-04 23:19:16
40
原创 [SWPUCTF 2021 新生赛]error
查看源码,发现数据库后端语句都告诉你了,考点就是报错注入,发现NSSCTF上没有比较好的完整payload,那我写写。1.打开环境,查看源码。
2023-03-04 19:22:08
610
原创 [SWPUCTF 2021 新生赛]pop(NSSCTF)
phppop链的原理是构造不同类相互调用的链条,调用php的魔术方法来实现flag的读取。1.打开环境,审计代码。
2023-03-03 19:35:04
306
原创 [SWPUCTF 2021 新生赛]sql
发现变量wllm,传入1‘发现报错,是sql注入,进行fuzz测试。1.打开环境,查看源代码。一个简单的python脚本。发现=和空格都被过滤了。3.mid函数的使用。
2023-03-02 22:13:36
762
原创 FlatScience(攻防世界)
发现$user基本没有过滤,可以进行sql注入,需要注意的是数据库是sqlite,查询语句与mysql会有差距,且其会自动创建sqlite_master库存储信息。4.用爬虫爬取所有论文,再用pdfminer库处理遍历pdf,获取admin密码,获得flag.3.在login.php查看源代码,发现get传参debug可以获取源码。并没有什么有效信息,发现robots.txt有提示信息。
2023-02-28 00:16:48
290
原创 shrine(攻防世界)
2.由此可知,这是在shrine路径下的ssti注入,由于过滤了config和self,可以用get_flashed_messages函数提取flag。2.get_flashed_messages函数。1.打开环境,审计代码。
2023-02-26 14:31:52
275
原创 ics-05(攻防世界)
3.利用X-Forwarded-For和preg_replace因/e修饰符的使用,使得replacement里的字符串可以以php代码运行。2.查看网页源码,发现在index?page=可以盲猜用伪协议php://filter读取index.php的源码。2.preg_place漏洞。1.打开环境,审计代码。
2023-02-25 20:51:40
145
原创 mfw(攻防世界)
2.在about界面上发现了Git,自然想到githack获取源码,发现index.php中的assert函数未经有任何过滤。1.打开环境,审计代码。3.利用payload。
2023-02-25 18:30:46
352
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人