• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

buuctf7

武飞扬头像
木…
帮助1

目录

Crypto

MD5

Url编码

 看我回旋踢

web

[极客大挑战 2019]BuyFlag

 [BJDCTF2020]Easy MD5


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碰撞

  1.  
    s878926199a //原始字符串
  2.  
    0e545993274517709034328855841020 //md5
  3.  
    s155964671a
  4.  
    0e342768416822451524974117254469
  5.  
    s214587387a
  6.  
    0e848240448830537924465865611904
  7.  
    s214587387a
  8.  
    0e848240448830537924465865611904
  9.  
    s878926199a
  10.  
    0e545993274517709034328855841020
  11.  
    s1091221200a
  12.  
    0e940624217856561557816327384675
  13.  
    s1885207154a
  14.  
    0e509367213418206700842008763514
  15.  
    s1502113478a
  16.  
    0e861580163291561247404381396064
  17.  
    s1885207154a
  18.  
    0e509367213418206700842008763514
  19.  
    s1836677006a
  20.  
    0e481036490867661113260034900752
  21.  
    s155964671a
  22.  
    0e342768416822451524974117254469
  23.  
    s1184209335a
  24.  
    0e072485820392773389523109082030
  25.  
    s1665632922a
  26.  
    0e731198061491163073197128363787
  27.  
    s1502113478a
  28.  
    0e861580163291561247404381396064
  29.  
    s1836677006a
  30.  
    0e481036490867661113260034900752
  31.  
    s1091221200a
  32.  
    0e940624217856561557816327384675
  33.  
    s155964671a
  34.  
    0e342768416822451524974117254469
  35.  
    s1502113478a
  36.  
    0e861580163291561247404381396064
  37.  
    s155964671a
  38.  
    0e342768416822451524974117254469
  39.  
    s1665632922a
  40.  
    0e731198061491163073197128363787
  41.  
    s155964671a
  42.  
    0e342768416822451524974117254469
  43.  
    s1091221200a
  44.  
    0e940624217856561557816327384675
  45.  
    s1836677006a
  46.  
    0e481036490867661113260034900752
  47.  
    s1885207154a
  48.  
    0e509367213418206700842008763514
  49.  
    s532378020a
  50.  
    0e220463095855511507588041205815
  51.  
    s878926199a
  52.  
    0e545993274517709034328855841020
  53.  
    s1091221200a
  54.  
    0e940624217856561557816327384675
  55.  
    s214587387a
  56.  
    0e848240448830537924465865611904
  57.  
    s1502113478a
  58.  
    0e861580163291561247404381396064
  59.  
    s1091221200a
  60.  
    0e940624217856561557816327384675
  61.  
    s1665632922a
  62.  
    0e731198061491163073197128363787
  63.  
    s1885207154a
  64.  
    0e509367213418206700842008763514
  65.  
    s1836677006a
  66.  
    0e481036490867661113260034900752
  67.  
    s1665632922a
  68.  
    0e731198061491163073197128363787
学新通

 /levels91.php?a=s878926199a&b=s155964671a学新通6.代码审计:post传参两个参数,要求param1强不等于param2并且param1和param2的MD5值要强相同

强类型比较,那就不能用md5碰撞了,只能用继续数组绕过,我们POST数据:

param1[]=1&param2[]=2

得到flag

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfeigk
系列文章
更多 icon
同类精品
更多 icon
继续加载