buuctf7
目录
Crypto
MD5
1.下载文件
2.md5在线解密
3.外包flag
Url编码
使用url在线解码
看我回旋踢
下载,得到这串字符,搜一下synt编码
看到使用凯撒密码,位移为13,在线解码得到flag
凯撒密码是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。
根据偏移量的不同,还存在若干特定的恺撒密码名称:
偏移量为10:Avocat(A→K)
偏移量为13:rot13
偏移量为-5:Cassis (K 6)
偏移量为-6:Cassette (K 7)
web
[极客大挑战 2019]BuyFlag
1.打开menu看看
2.打开payflag。买flag的条件是CUIT的学生,有正确的密码
3.查看源代码,得到提示:使用post传参password要弱等于404。
函数is_numeric()
判断其中的参数是数字还是其他,如果是数字则判断为真,否则为假
使用hackbar传参,password=404a
4.提示只有cuit的学生可以买flag。使用bp抓包
关于用户的提示只有在cookie:user=0
,那我们将其换为1
试试
看到提示的身份及密码正确,黑客,买flag
,那我们再根据提示,支付money
,使用post
传参password=404a&money=100000000
提示number lenth太长了
可以看到php的版本很低,有两种方法可以绕过。数组或者科学计数法
数组
strcmp函数
int strcmp ( string $str1 , string $str2 )
参数 str1第一个字符串。str2第二个字符串。如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。
可知,传入的期望类型是字符串类型的数据,但是如果传入非字符串类型的数据的时候,这个函数将发生错误,但是在5.3之前的php中,显示了报错的警告信息后,将return 0。也就是说虽然报了错,但却判定其相等
科学计数法
1000000000=1e9
[BJDCTF2020]Easy MD5
1.打开环境,输入什么都没用回显
2.看了一下源代码,没发现什么
3.使用bp抓包。看到hint里给了一个sql语句,我们需要输入一个密码但是我们并不知道正确密码。这里需要利用md5绕过
md5()函数
我们只需要把语句拼接为select * from 'admin' where password=‘xxx’ or ‘1就可以绕过这个语句
那当md5($pass,true)为true时,返回的是16位原始二进制格式的字符串,所以我们只需知道哪些字符串返回的是16位原始二进制。那么谁的MD5值可以是这么个东西呢,查了一下有 ffifdyop。
绕过原理:
ffifdyop 这个字符串被 md5 哈希了之后会变成 276f722736c95d99e921722cf9ed621c,这个字符串前几位刚好是 ’ or ‘6
而 Mysql 刚好又会把 hex 转成 ascii 解释,因此拼接之后的形式是 select * from ‘admin’ where password=’’ or ‘6xxxxx’,等价于 or 一个永真式,因此相当于万能密码,可以绕过md5()函数。
所以把这个值写进输入框中,回显:
5. 查看页面源代码
代码审计:get传参两个参数a和b,要求a不等于b并且a和b的MD5值要相同
可以MD5碰撞(MD5值以0e开头),也可以用php数组绕过
(1)PHP数组绕过,由于哈希函数无法处理php数组,在遇到数组时返回false,我们就可以利用false==false使条件成立
/levels91.php?a[]=1&b[]=2 //a不等于b
(2)MD5碰撞
-
s878926199a //原始字符串
-
0e545993274517709034328855841020 //md5值
-
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
/levels91.php?a=s878926199a&b=s155964671a6.代码审计:post传参两个参数,要求param1强不等于param2并且param1和param2的MD5值要强相同
强类型比较,那就不能用md5碰撞了,只能用继续数组绕过,我们POST数据:
param1[]=1¶m2[]=2
得到flag
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfeigk
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01