当前位置: 首页 > news >正文

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 gmpy2p=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

相关文章:

  • 【图论及其运用 — 电子科技大学】(四)第四章 欧拉图与哈密尔顿图(Euler 图与 Hamilton 图)
  • 电子招投标系统源码实现与立项流程:基于Spring Boot、Mybatis、Redis和Layui的企业电子招采平台
  • 炫酷网页设计:HTML5 + CSS3打造8种心形特效
  • 如何通过IP地址来防范“杀猪盘”?
  • QT5.15.2及以上版本安装
  • 掌握代码注释:提升代码可读性的秘密武器
  • 2024电工杯数学建模A题Matlab代码+结果表数据教学
  • Python——基于共享单车使用量数据的可视化分析(1)
  • 浏览器API与协议
  • java组合设计模式Composite Pattern
  • 【话题】你眼中的IT行业现状与未来趋势
  • linux系统——ps命令的两种参数模式
  • Langchain:数据连接封装、缓存封装和LCEL学习和探索
  • 【无标题】为什么在运行 F-Tile 三速以太网FPGA IP 设计示例时会看到意外的吞吐量结果?
  • Unity LayerMask避坑笔记
  • ES6系统学习----从Apollo Client看解构赋值
  • idea + plantuml 画流程图
  • Intervention/image 图片处理扩展包的安装和使用
  • Java超时控制的实现
  • java正则表式的使用
  • Laravel核心解读--Facades
  • VUE es6技巧写法(持续更新中~~~)
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 基于webpack 的 vue 多页架构
  • 数据仓库的几种建模方法
  • 用Canvas画一棵二叉树
  • 运行时添加log4j2的appender
  • 我们雇佣了一只大猴子...
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (四)stm32之通信协议
  • (转)程序员技术练级攻略
  • .NET Core引入性能分析引导优化
  • .net 程序发生了一个不可捕获的异常
  • .net 获取某一天 在当月是 第几周 函数
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • //usr/lib/libgdal.so.20:对‘sqlite3_column_table_name’未定义的引用
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [APIO2012] 派遣 dispatching
  • [BZOJ4566][HAOI2016]找相同字符(SAM)
  • [C#]OpenCvSharp 实现Bitmap和Mat的格式相互转换
  • [C#基础知识系列]专题十七:深入理解动态类型
  • [C++]二叉搜索树
  • [Codeforces1137D]Cooperative Game
  • [cvpr 2024 目标检测 前沿研究 热点] cpvr 2024中与目标检测主题有关的论文
  • [Electron] 将应用打包成供Ubuntu、Debian平台下安装的deb包
  • [ESP32] 编码旋钮驱动
  • [idea]关于idea开发乱码的配置
  • [iOS开发]事件处理与响应者链
  • [Jquery] 实现鼠标移到某个对象,在旁边显示层。
  • [kotlin]处理延时操作