云曦2024年春季学期期中考复现

目录

Web

Web_SINGIN

简简单单的文件上传

好玩的PHP

渗透的本质

简简单单的sql

re

baby_re

easy xor

Crypto

easy_rsa

Rsa2

Crypto_Singin

Pwn

 pwn_Sing

Misc

easy_singin

Xjpg

流量分析1

流量分析3

流量分析2


Web

Web_SINGIN

1.使用右键检查,在js文件中发现base64编码

2.在hackbar中解码之后,得到flag

简简单单的文件上传

1.随便上传一个文件,点击上传,得到以下回显

2.根据回显,知道要修改文件的Content-Type为image/haha,于是想到抓包修改

3.上传成功之后,构造payload:172.16.17.6:7405/uploads/shell.php使用蚁剑连接

4.在蚁剑里面找到flag

好玩的PHP

1.先进行代码审计

 <?php
$p1 = @$_GET['a'];
$p2 = @$_GET['b'];
$p3 = @$_GET['c'];
$p4 = @$_GET['d']; //从 GET 请求中获取参数 'a', 'b', 'c', 'd' 的值,并使用 @ 符号来抑制可能的错误消息(如未定义索引)。
if(isset($_GET['a']) && isset($_GET['b']) && isset($_GET['c']) && isset($_GET['d'])) 
//检查是否所有四个 GET 参数 'a', 'b', 'c', 'd' 都已设置(即存在于请求中)。
    if($p1 != $p2 && md5($p1) == md5($p2)){
// 如果 $p1 和 $p2 的值不同,但它们的 MD5 哈希值相同,则执行以下操作。
        if($p3 === file_get_contents($p4)){
// 如果 $p3 的值与 $p4 指定的文件内容相同,则执行以下操作
            echo file_get_contents("flag.php"); //如果上述条件都满足,则输出 "flag.php" 文件的内容。
        }
    }
    else{
        die("请输入2个不同的值"); //如果 $p1 和 $p2 的值相同,或者它们的 MD5 哈希值不同,则输出错误信息并终止脚本执行。
    }
highlight_file("index.php"); //论上述条件是否满足,都高亮显示 "index.php" 文件的内容。

2.根据代码,构造相应的url,先满足第一个if

3.满足第二个if,这里需要注意file_get_contents()函数的利用,两个条件同时满足,得到flag 

渗透的本质

1.通过观察附件robots.txt,发现其中有很多文件,包括:zip,rar,备份文件等

2.这里想到工具dirsearch中的指定字典扫描,于是用python dirsearch.py -u 网址 -e php,html -w 字典路径来扫描

3.查看这个可疑文件,得到以下代码,进行代码审计

<?php
if("admin"===$_GET[id]) {
  echo("<p>not allowed!</p>");
  exit();
}
//这段代码检查$_GET[id]是否严格等于字符串"admin"。如果是,则输出“not allowed!”并退出脚本。注意这里使用了严格等于运算符===,这意味着它还会比较变量的类型。
$_GET[id] = urldecode($_GET[id]); //此外,这行代码将$_GET['id']的值进行URL解码,并将解码后的值重新赋给$_GET['id']。
if($_GET[id] == "admin")
{
  echo "<p>Access granted!</p>";
  echo "<p>Flag: XXXXXXX </p>";
}//这段代码检查URL解码后的$_GET['id']是否等于字符串"admin"。如果是,则输出“Access granted!”和一个标志
?>

Can you anthenticate to this website?

资料:攻防世界-web高级-php2_%6e 解码-CSDN博客

4.通过抓包进行编码,这里进行了两次编码

原理:

$_GET[id] = urldecode($_GET[id]);

这句是进行一个url解码,在我们网页上输入网址位置也会进行一次url解码,代码中一句url解码 + 网页自带一句url解码,如果我没有算错的话应该是 2次 url解码,然后这个时候我们可以想到,url解码 + url解码 = admin,然后我们把admin进行编码两下

5.进行传参,得到flag

简简单单的sql

1.使用dirsearch扫描得到login.php,访问可得

2.密码使用admin,发现提示NO SQL,猜测是盲注

3.这里使用sqlmap来解题

自动爆数据库

sqlmap -u url --level 3 --dbs --batch

发现是UA头注入

爆数据表 

sqlmap -u url --level 3 -D challenges --tables --batch

 

爆数据列 

sqlmap -u url --level 3 -D challenges -T user_agents --columns --batch

 

爆字段,得到flag 

sqlmap -u url --level 3 -D challenges -T user_agents -C user_agent --dump  --batch

re

baby_re

1.判断出是32位,使用IDA查看,发现在主函数的Hex View-1中发现flag

2.整理可得flag

easy xor

1.先看是多少位的,再看是否加壳,发现是64位,无壳

2.

Crypto

easy_rsa

资料:CTF ——crypto ——RSA原理及各种题型总结_给定p,q,e,c,求解出明文m已知加密文件flag,enc和公钥pub.key,-CSDN博客

1.使用脚本跑一下,得到flag

Rsa2

1.先上网搜rsa中有关enc文件的知识点

资料:RSA解密-提供enc和pem文件类_flag.enc-CSDN博客

2.根据

Crypto_Singin

1.打开文件发现是Unicode字符

2.使用在线解码工具,得到Hex编码

3.解码之后,得到HTML编码

4.解码之后得到base64编码

5.得到flag

Pwn

 pwn_Sing

1.直接使用nc,然后ls查看目录,最后cat flag.txt得到flag

Misc

easy_singin

1.根据提示,使用在线根据进行解码,得到flag

Xjpg

1.根据提示“你会使用win10刷新快捷键吗”,想到f5隐写

2.用F5-steganography进行解密

3.打开kali中的output.txt查看

4.pk头,把文件头改成zip文件的文件头

5.最后使用brainfuck解码

流量分析1

1.用wireshark进行分析,并且导出http对象

2.发现666.zip文件

3.发现很多文件

4.打开1.txt和2.txt文件,发现1中有png的头部,6中有尾部,这说明6个文件可以组成一张png

png的头部为89 50 4E 47   尾部为AE 42 60 82

5.16进制之后,放入010editer,发现有一张二维码

6.解码得到flag

流量分析3

1.下载得到一个rar文件,重命名,解压

2.打开flag文件,发现有加密

3.进行流量分析,发现很多USB,猜测是键盘流量分析

4.使用相应工具,得到flag

资料:usb流量分析的一个题目分享_usb流量分析工具-CSDN博客

流量分析2

1.使用wireshark工具打开,发现是sql注入盲注的流量分析

2.过滤包含flag的http,并且根据盲注的特点,是一个一个的寻找,从(1,1)(2,1)寻找,再对照ASCILL表,发现与flag有关

3.对比之后得到flag

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值