SHCTF WP解析 个人博客godyu.com WP网页解析也会发到博客上

Web

题目截图

截图

[WEEK1]生成你的邀请函吧~

本题两个工具都可以发送 工具1:插件Hackbar 工具2:postman

Hackbar我前面博客有介绍 这里用hackbar演示

截图

解析如下:

1.F12打开hackbar

2.在给定的网址后面加入/generate_invitation 使用json 打开post 填入body部分

3.最后点击EXECUTE即可发送 发送后会获取到一个图片 图片下面就包含你的flag

提交大括号body里面的 name和QQ自行修改

{
"name": "Yourname",
"imgurl": "http://q.qlogo.cn/headimg_dl?dst_uin=QQnumb&spec=640&img_type=jpg"
}

QQ截图20231024133347.png

====25BE2E6093EC56E1C23A51F62E5EE144.jpg====

[WEEK1]飞机大战

成绩不是99999999不让你过那就F12控制台改成绩即可

截图

截图

截图

[WEEK2]EasyCMS

很老的一个系统,/admin/admin.php 账号admin 密码tao 这个就是建站的初始账号密码

截图

截图

截图

截图

在主页或者其他地址输入命令 主页比较简单拿到flag

截图

[WEEK1]登录就给flag

本题用到kali linux系统 并且使用到kali工具中的BurpSuite 账号已经给了是admin

所以我们只需要爆破密码即可

截图

截图

截图

截图

浏览器FoxyProxy or proxy Switchomega插件配置代理127.0.0.1 在火狐浏览器也需要设置代理(

截图

截图

截图

Burp配置一下代理

让后打开拦截按钮

截图

截图


先随便输入密码 肯定是错的 不过我们目的是为了抓包

截图

点击登录 Burp就会弹出来 右键

截图

截图截图

截图

load加载字典 或者复制 让后查看字节 那个字节不同 密码就是那个了

得到密码是password 如果前面是两个变量 需要选择鱼叉模式(也就是第三个进行爆破

这里已经知道账号是admin了 所以前面也可以设置一个变量(即密码 让后用狙击手模式爆破)

截图

得到flag

tjj我喜欢你

[WEEK1]babyRCE

截图

截图

截图

命令绕过WAF教程https://www.freebuf.com/articles/web/330736.html

cat flag即可 /?rce=c\at${IFS}/fl\ag 或者/?rce=c\at%09/fl\ag 拿下

[WEEK1]1zzphp

截图

截图

一个preg_math可以用数组绕过,第二个preg_match有递归限制,

这时候可以发送超长的垃圾数据去绕开这个preg_match 需要我们了解这些函数的用法

需要包括2023SHCTF 让后在加一个垃圾数据匹配他即可

这里直接用py 也可以通过转换uft-8用postman或者Hackbar

代码:

import requests
url='http://112.6.51.212:32426/?num[]=1'
data={
'c_ode':'G'*1020000+'2023SHCTF'
}
r=requests.post(url=url,data=data).text
print(r)

截图

[WEEK2]ez_ssti

截图截图WEb SSTI解析https://blog.csdn.net/Jayjay___/article/details/132210050

?a=os&b=popen&c=cat /flag&name={{url_for.globals[request.args.a]request.args.b.read()}}

截图

** Pwn

题目截图

截图

[WEEK1]nc**

截图

soeasy kali直接nc cat flag

截图

[WEEK1]hard nc

ls -al 有个隐藏的.gift ,两个gift这就是其中一个咯 cat .gift

还有一个gift2 直接进入拿到flag base64解码两段拼接一下即可

截图

Cache_-463753580cb4a61c..jpg

Crypto

题目目录截图

截图

[WEEK1]小兔子可爱捏

截图

截图

宇宙的终极答案是42(搜索引擎搜索

Rabbit 加密

U2FsdGVkX1/lKCKZm7Nw9xHLMrKHsbGQuFJU5QeUdASq3Ulcrcv9

工具https://www.sojson.com/encrypt_rabbit.html

截图

[WEEK1]凯撒大帝

凯撒凯撒 那就是凯撒加密咯

凯撒解密工具https://www.lddgo.net/encrypt/caesar-cipher

截图

截图

flag{chutihaonan}

[WEEK1]进制

几层?两层 工具解密地址:https://www.toolhelper.cn/EncodeDecode/EncodeDecode

截图

截图

截图

flag{ahfkjlhkah}

[WEEK1]okk

ook加密 解密地址:https://www.splitbrain.org/services/ook

截图

截图

flag{123456789}

[WEEK1]熊斐特

埃特巴什码加密

解密地址:http://www.hiencode.com/atbash.html

截图

截图

flag{atbash cipher}

[WEEK1]黑暗之歌

盲文加密 - base64(utf8)加密 -音符加密

工具地址https://www.toolhelper.cn/EncodeDecode/Base64EncodeDecode

截图

⠴⡰⡭⡳⠴⡰⡭⡰⡷⡲⡢⡩⡭⡡⠯⡩⡭⡡⡺⡩⡭⡡⠳⡩⡭⡡⡺⡩⡭⡡⡶⡩⡭⡡⡶⡩⡭⡡⡲⡩⡭⡡⡺⡩⡭⡡⠯⡩⡧⡊⡢⡩⡭⡡⠯⡩⡭⡡⡺⡃⡰⠫⡋⡚⡲⡍⡋⡮⠴⡰⡭⡶⡷⡲⡢⡩⡧⡊⡢⡃⡴⡵⡋⡁⡬⡵⡋⡁⡬⡵⡋⡁⡬⡳⡋⠲⠴⡯⡃⡗⠴⡰⡭⡴⠴⡰⡭⡶⡷⡲⡢⡩⡧⡊⡢⡩⡭⡡⡺⡩⡭⡡⡺⡩⡭⡡⠳⡩⡧⡊⡢⡩⡭⡡⠯⡩⡧⡊⡢⡃⡴⡵⡋⡚⡱⠫⡋⡚⡱⠫⡋⡚⡲⠵⠲⡺⠰⠽ 盲文

截图

4pms4pmpwrbima/imazima3imazimavimavimarimazima/igJbima/imazCp+KZrMKn4pmvwrbigJbCtuKAluKAluKAlsK24oCW4pmt4pmvwrbigJbimazimazima3igJbima/igJbCtuKZq+KZq+KZrz0=

截图

♬♩¶♯♬♭♬♫♫♪♬♯‖♯♬§♬§♯¶‖¶‖‖‖¶‖♭♯¶‖♬♬♭‖♯‖¶♫♫♯=

截图

flag{b2cc-9091-8a29}

[WEEK1]迷雾重重

给提示了是摩斯

解密工具地址https://www.lddgo.net/encrypt/morse

截图

题目描述:

morse?ASCII?

密文:

0010 0100 01 110 1111011 11 111 010 000 0 001101 00 000 001101 0001 0 010 1011 001101 0010 001 10 1111101

截图

换小写 那改编码规则即{ 得到 flag{morse_is_very_fun}

[WEEK1]难言的遗憾

清政府以前用的电报 解密工具https://www.qqxiuzi.cn/bianma/dianbao.php

截图

密文:

000111310008133175592422205314327609650071810649

截图

flag{一天不学高数我就魂身难受}

[WEEK1]what is m

bytes_to_long -那就long_to_bytes

代码

from Crypto.Util.number import *
flag = m
print(long_to_bytes(flag))

截图

截图

截图

flag{THERE_ArE_53V3RaI_AItern47IVES_7o_THe_10n9_to_BYtEs_FUNcti0n}

[WEEK1]really_ez_rsa

截图

from Crypto.Util.number import getPrime, bytes_to_long

e = 65537 m = b''

p = getPrime(128) q = getPrime(128) n = p * q m = bytes_to_long(m) c = pow(m, e, n)

print("p =", p) print("q =", q) print("c =", c) print("e =", e)

from Crypto.Util.number import getPrime, bytes_to_long

e = 65537 m = b''

p = getPrime(128) q = getPrime(128) n = p * q m = bytes_to_long(m) c = pow(m, e, n)

print("p =", p) print("q =", q) print("c =", c) print("e =", e)

p = 217873395548207236847876059475581824463

q = 185617189161086060278518214521453878483 c = 6170206647205994850964798055359827998224330552323068751708721001188295410644

e = 65537

截图

from sympy import mod_inverse
from Crypto.Util.number import *
p = 217873395548207236847876059475581824463
q = 185617189161086060278518214521453878483
e = 65537
Godyu = 6170206647205994850964798055359827998224330552323068751708721001188295410644
n = p * q
phi_n = (p - 1) * (q - 1)
d = mod_inverse(e, phi_n)
m = pow(Godyu, d, n)
print(long_to_bytes(m))

flag{Y0ung_meiyou_xiaojj} (这应该是私人恩怨吧hhh 竟然没有小jj

[WEEK1]Crypto_Checkin

截图

QZZ|KQbjRRS8QZRQdCYwR4_DoQ7~jyO>0t4R4__aQZQ9|Rz+k_Q!r#mR90+NR4_4NR%>ipO>0s{R90|SQhHKhRz+k^S8Q5JS5|OUQZO}CQfp*dS8P&9R8>k?QZYthRz+k_O>0#>

base85 ascii标准 - base64 - base32 - hex_to_ascii

截图

flag{Th1s_1s_B4s3_3nc0d3}

[WEEK1]残缺的md5

Py爆破 sbmd5 爆破三处

截图

苑晴在路边捡到了一张纸条,上面有一串字符串:KCLWG?K8M9O3?DE?84S9 问号是被污染的部分,纸条的背面写着被污染的地方为大写字母,还给了这串字符串的md5码值:F0AF????B1F463????F7AE???B2AC4E6 请提交完整的md5码值并用flag{}包裹提交

import hashlib
import itertools
flag_string = "KCLWG?K8M9O3?DE?84S9"
flag_md5 = "F0AF????B1F463????F7AE???B2AC4E6"
def replace_placeholders(string, combination):
for char in combination:
string = string.replace("?", char, 1)
return string
def is_similar(hash1, hash2):
for c1, c2 in zip(hash1, hash2):
if c2 != "?" and c1 != c2:
return False
return True
for combination in itertools.product("ABCDEFGHIJKLMNOPQRSTUVWXYZ", repeat=flag_string.count("?")):
md5_hash = hashlib.md5(replace_placeholders(flag_string, combination).encode()).hexdigest().upper()
if is_similar(md5_hash, flag_md5):
print(f"flag{{{md5_hash}}}")

截图

flag{F0AF1443B1F463EAFFF7AEBB8B2AC4E6}

[WEEK2]哈希猫

哈希猫把m分成了好几个哈希值,需要遍历自由组合

比较耗cpu..

flag{Y0u'V3_C0me_7o_uNderSt4nD_hASH_becEa6F16fee}

Misc

题目截图

截图

[WEEK1]请对我使用社工吧

截图

where.jpg

看右下角QQ 根据他的QQ收集信息-老家 山东东营-中国石油大学

[WEEK1]签到题

截图

Wm14aFozdDBhR2x6WDJselgyWnNZV2Q5

两次base64解密

[WEEK2]远在天边近在眼前

就一压缩包自己填上即可 真近在眼前 补上即可 .. Pua我们新东西 ~

截图

[WEEK1]message

截图

截图

0001000D91683106019196F40008C26211002072B975915730671B54114F60000A000A592982B15C065265843D8A938A00000A000A5E8A9AA453D883525730000A000A91527CBE518D6E1751656CEA75D5000A000A6C899ED852305BF94E0D8D77000A000A8FD94E0053CC624B535191195230002062B14F4F4F6000530048004300540046007B00620061003900370038003400300035002D0062003100630038002D0038003400370063002D0038006500360039002D006600360032003100370037006500340063003000380037007D

Pdu格式编码 工具地址https://www.diafaan.com/sms-tutorials/gsm-modem-tutorial/online-sms-pdu-decoder/

截图

看到这个message我又想到了那句话(黑客有什么用?一天天忙的要死,连自己的爱人都留不住,但我下辈子我还学网安.

[WEEK1]可爱的派蒙捏

截图截图

用到kali

截图

截图

得到两个旮旯长的txt文件 发现flag 步进2撸代码迭代

with open("C:\\Users\\godyu\\txt1.txt", "r", encoding="utf-8") as f1:
txt1 = f1.read()
with open("C:\\Users\\godyu\\txt2.txt", "r", encoding="utf-8") as f2:
txt2 = f2.read()
diff_str_complete = []
for char1, char2 in zip(txt1, txt2):
if char1 != char2:
diff_str_complete.append(char1)
diff_str_complete.append(char2)
diff_str_complete = ''.join(diff_str_complete)
print(diff_str_complete)
for i in range(1, len(diff_str_complete), 2):
print(diff_str_complete[i], end="")

截图

flag{4ebf327905288fca947a}

Reverse

题目全部截图:

截图

[WEEK1]easy_re

第一个easy_re 帮大家找到主函数 剩余的部分省略

首先我们需要下载ida 这里我用ida8.3最新版的分析

直接拖进ida

截图

截图

OK -YES shift+12 找地址

截图

双击

截图

截图

找到flag前的format 标记 嗯X查地址 点OK

截图让后F5 进入主函数

截图

找到主函数部分开始分析

注意:Re需要极高的C++基础 没有C++算法基础建议避开先去学C++

双击des找字节

截图

截图

找到这个字节 des高低位换回去

des = [
0x66, 0xC6, 0x16, 0x76, 0xB7, 0x45, 0x27, 0x97, 0xF5, 0x47,
0x03, 0xF5, 0x37, 0x03, 0xC6, 0x67, 0x33, 0xF5, 0x47, 0x86,
0x56, 0xF5, 0x26, 0x96, 0xE6, 0x16, 0x27, 0x97, 0xF5, 0x07,
0x27, 0x03, 0x26, 0xC6, 0x33, 0xD6, 0xD7, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
]
def convert(byte):
l , h = byte & 0x0F , byte & 0xF0
reversed_byte = (l << 4) | (h >> 4) #
return chr(reversed_byte)
flag = ''.join([convert(byte) for byte in des if byte != 0x00])
print(flag)

截图

[WEEK1]seed

截图截图

截图

[WEEK1]seed

截图

截图

[WEEK1]easy_math

截图

截图

[WEEK1]signin

没东西找到主函数

flag{flag1sinarray}

[WEEK1]ez_asm

截图

置反

flag = "nhuo[M`7mc7uhc$7midgbTf`7`$7%#ubf7 ci5Y"
decoded_flag = ""
for char in flag:
decoded_byte = chr((ord(char) + 0x0A) ^ 0x1E)
decoded_flag += decoded_byte
print(decoded_flag)

[WEEK3]easyre

截图截图

截图

运行即可得到flag

截图