nssctf web入门(2)

news/2024/11/25 13:31:49/

目录

[SWPUCTF 2021 新生赛]easy_md5

[SWPUCTF 2021 新生赛]include

[SWPUCTF 2021 新生赛]PseudoProtocols


这里通过nssctf的题单web安全入门来写,会按照题单详细解释每题。题单在NSSCTF中。

想入门ctfweb的可以看这个系列,之后会一直出这个题单的解析,题目一共有28题,打算写10篇。

[SWPUCTF 2021 新生赛]easy_md5

[SWPUCTF 2021 新生赛]easy_md5​​​​​​

<?php highlight_file(__FILE__); #显示这个文件的代码include 'flag2.php';      #包含flag文件if (isset($_GET['name']) && isset($_POST['password'])){  #if判断通过get请求name变量通过post请求password变量$name = $_GET['name'];  #定义name$password = $_POST['password']; #定义passwordif ($name != $password && md5($name) == md5($password)){  #要求name和password值不同但md5值相同echo $flag;}else {echo "wrong!";}}
else {echo 'wrong!';
}
?>

这里记住md5的题基本都是这个,md5弱比较,md值为0e开头的会被识别为科学计数法结果为

0所以我们直接搜索md5值为0e开头的值就行

240610708
0e462097431906509019562988736854
s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a
0e509367213418206700842008763514
s1502113478a
0e861580163291561247404381396064
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s155964671a
0e342768416822451524974117254469

这里面的都是

 得到FLAG

[SWPUCTF 2021 新生赛]include

[SWPUCTF 2021 新生赛]include

按他说的传入一个file

<?php
ini_set("allow_url_include","on");   #通过ini_set是allow_url_include的选项改为on allow_url_include为on代表允许远程服务器上包含php文件
header("Content-type: text/html; charset=utf-8");
error_reporting(0); #通过error_reporting关闭错误报告
$file=$_GET['file']; #通过get获取file变量赋值给file
if(isset($file)){    #if判断show_source(__FILE__);   #show_source将当前文件输出到页面上echo 'flag 在flag.php中';
}else{echo "传入一个file试试";
}
echo "</br>";
echo "</br>";
echo "</br>";
echo "</br>";
echo "</br>";
include_once($file); #include_once将$file变量指定的文件包含进来,并执行文件中的php代码
?>

这里include开了肯定是文件包含,我们使用php伪协议通过base64过滤器将文件内容转为base64内容

php://filter/read=convert.base64-endode/resource=flag.php

php://filter/read 是一种特殊的数据源,用于读取并过滤输入数据。read 表示读取操作,即将数据源的内容读取到 PHP 程序中。可以在 read 后面指定一个或多个过滤器,用于对数据进行过滤和转换。

 在通过base64解密

[SWPUCTF 2021 新生赛]PseudoProtocols

[SWPUCTF 2021 新生赛]PseudoProtocols

这里和上面一样的使用伪协议

 base64解密

 

 

 

 

<?php
ini_set("max_execution_time", "180");  #ini_set 设置php运行时间的选项 max_execution_time为180表示php程序最多可以运行180秒
show_source(__FILE__); #通过show_source将当前文件源码输出到页面
include('flag.php'); #包含flag.php
$a= $_GET["a"];   #通过get方法获取a变量赋值给a
if(isset($a)&&(file_get_contents($a,'r')) === 'I want flag'){ #通过if判断先判断是不是空,然后通过file_get_contents读取变量$a'r'代表已只读的方法打开。如果读取成功会返回文件内容如果读取失败返回flaseecho "success\n";echo $flag;
}
?>

很明显我们要构造$a的内容为a通过data方式传递a的内容为I want flag

 这里我们要明白通过url指定的a的值为I want flag 是不行的因为file_get_contents在解析url时会把a的值当为地址去解析即去$a=I want flag中获取数据打开,而$a=I want flag中没有数据。

通过data  中file_get_contents会直接将数据I want flag读取 

data:<MIME type>[;charset=<charset>][;base64],<data>
其中 <MIME type>是数据类型 test/plain 代表文本类型 image/png代表图片类型
<charset> 代表字符编码 如 utf-8 gb2312
<base64> 指示数据部分是否进行了base64编码
<data> 数据部分可以是文本,图片,等等

  


http://www.ppmy.cn/news/43198.html

相关文章

ArrayList源码扩容机制分析

文章目录ArrayList 简介Arraylist 和 Vector 的区别?Arraylist 与 LinkedList 区别?ArrayList 核心源码解读ArrayList 扩容机制分析先从 ArrayList 的构造函数说起先来看 add 方法再来看看 ensureCapacityInternal() 方法ensureExplicitCapacity() 方法grow() 方法我们再来通…

5.mybatis-plus-条件构造器

1.简介 Wrapper条件构造器&#xff0c;可以通过其构造复杂的SQL Wrapper 条件构造抽象类-- AbstractWrapper 查询条件封装&#xff0c;用于生成 sql 中的 where 语句。-- QueryWrapper Entity 对象封装操作类&#xff0c;用于查询。-- UpdateWrapper Update 条件封装操作类&am…

【《C Primer Plus》读书笔记】第17章:高级数据表示

【《C Primer Plus》读书笔记】第17章&#xff1a;高级数据表示17.1 研究数据表示17.2 从数组到链表17.3 抽象数据类型&#xff08;ADT&#xff09;17.4 队列ADT17.5 用队列进行模拟17.6 链表和数组17.7 二叉查找树17.8 其他说明17.1 研究数据表示 在开始编写代码之前&#xf…

系统复杂度之【高性能】

系统复杂度之【高性能】 今天我们来谈一谈系统复杂度的根源之【高性能】 对性能的不懈追求一直是人类科技持续发展的核心动力。例如计算机&#xff0c;从电子管计算机到晶体管计算机&#xff0c;再到集成电路计算机&#xff0c;运算性能从每秒几次提高到每秒几亿次。然而&#…

如何驱动模拟舵机-Controller 1.0b软件的使用

1.支持平台 win10、win7 win10打开Controller 1.0.exe即可运行&#xff1b;win7需要先安装Controller1.0b资料包\NetFarmwork文件夹中的.net框架组件。 2.电子硬件 我们用以下硬件为例来讲解Controller 1.0b软件的使用&#xff1a; 主控板 Basra主控板&#xff08;兼容Arduino…

【C语言】一文带你简单了解C语言

这里写目录标题&#xff09;引言C语言概述基础语法数据类型运算符循环语句分支语句函数数组指针文件操作内存管理高级特性结构体枚举类型联合体预处理器应用场景操作系统编译器游戏开发嵌入式系统引言 C语言是一种通用的计算机编程语言&#xff0c;具有高效、灵活、可移植等特点…

肖 sir_就业课__003自我介绍

自我介绍 一、学员自我介绍&#xff0c;讲解存在的问题 比如&#xff1a;讲解年份、卡顿、重点学历、忘记 二、自我规则内容 1、开场白&#xff1a;礼貌用语 2、时间&#xff1a;自我介绍1-2分钟以内 3、内容&#xff1a;姓名、籍贯、毕业院校、&#xff08;拉进面试官举例&…

ESP32中串口通讯

概述 通用异步接收器/发射器 &#xff08;UART&#xff09; 是一种硬件功能&#xff0c;它使用广泛采用的异步串行通信接口&#xff08;如 RS232、RS422、RS485&#xff09;处理通信&#xff08;即时序要求和数据成帧&#xff09;。UART提供了一种广泛采用且廉价的方法来实现不…