【WEB】Polar靶场 11-15题 详细笔记

目录

十一.爆破

PHP的基本语法

变量与常量

数据类型

流程控制

函数

文件操作

数据库交互

1.substr() 函数

2. intval() 函数

十二.XFF 

X-Forwarded-For(简称XFF)

十三.rce1 

 shell 命令分隔符

isset()函数

preg_match_all()函数

${IFS}

十四.GET-POST

十五.被黑掉的站 


十一.爆破

又是php代码,对于我来说根本不会呀,还是先来学点基础的php知识吧


PHP是一种广泛使用的开源服务器端脚本语言,专为Web开发设计,同时也可以作为通用编程语言使用。其语法吸收了C语言、Java和Perl的特点,易于学习且功能强大。PHP的主要特点包括动态页面生成、数据库交互、文件操作等,适用于构建动态交互性网站。

PHP的基本语法

PHP代码通常嵌入在HTML中,使用<?php ... ?>标签包裹。以下是一个简单的PHP示例:

<!DOCTYPE html>
<html>
<body>
<?php
echo "Hello, World!";
?>
</body>
</html>

在上述代码中,echo用于输出内容到网页。

变量与常量

  • 变量:以$开头,区分大小写。例如:

$name = "PHP";
echo $name;
  • 常量:使用define()定义,通常以大写字母命名。例如:

define("SITE_NAME", "PHP中文网");
echo SITE_NAME;

数据类型

PHP支持多种数据类型,包括:

  • 标量类型:布尔型、整型、浮点型、字符串。

  • 复合类型:数组、对象。

  • 特殊类型:资源、NULL。

示例:

$integer = 10; // 整型
$string = "学习PHP"; // 字符串
$array = array(1, 2, 3); // 数组

流程控制

PHP提供了丰富的流程控制语句,包括ifswitchwhilefor等。例如:

$hour = date("H");
if ($hour < 12) {
echo "早上好!";
} else {
echo "下午好!";
}

函数

函数是PHP中实现代码复用的重要工具。定义函数的语法如下:

function greet($name) {
return "Hello, " . $name;
}
echo greet("PHP");

文件操作

PHP支持多种文件操作,例如读取、写入、删除文件:

// 写入文件
file_put_contents("example.txt", "学习PHP!");// 读取文件
$content = file_get_contents("example.txt");
echo $content;// 删除文件
unlink("example.txt");

数据库交互

PHP常用于与数据库交互,尤其是MySQL。以下是一个简单的MySQL连接示例:

$conn = new mysqli("localhost", "username", "password", "database");
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
$conn->close();

感觉跟学过的python和c语言有很多相似之处,但是又有挺大区别的

接下来看看题目

知识点 

1.substr() 函数

作用:从字符串中提取子串。

代码中的用法

  • substr($pass, 1, 1):提取密码的第 2 个字符(索引 1)。
  • substr($pass, 14, 1):提取密码的第 15 个字符(索引 14)。

2. intval() 函数

作用:将变量转换为整数类型。

转换规则

  • 数字字符串:直接转为数字(如 "5" → 5)。
  • 非数字字符串:从开头截取数字部分,剩余部分忽略(如 "5apple" → 5"apple" → 0)。
  • 其他类型:布尔值、浮点数等按规则转换(如 true → 13.14 → 3)。

 总之,上面php代码的意思是:

用户需找到一个字符串,使其 MD5 哈希值同时满足:

  1. 第 2、15、18 位字符相同(如均为2);
  2. 这三位的数值运算结果(例如(2+2+'2')/2=21)恰好等于第 32 位字符(如1)。

方法一:根据php代码推算出答案

下面是python脚本

import string
import hashlib
s=string.ascii_letters+string.digits
def intval(m):try:m=int(m)return mexcept:return 0
for i in s:for j in s:for k in s:a = i + j+kmd5= hashlib.md5(a.encode('utf-8')).hexdigest()if md5[1]==md5[14]==md5[17]:if intval(md5[1])!=0:if (intval(md5[1])+intval(md5[14])+intval(md5[17]))/intval(md5[1])==intval(md5[31]):print(a,end=' ')

这个脚本我写的是3位数的(1位数的不存在,2位数的看下面的php脚本)

所以答案有:

aDp a6e b7l ejt hc2 jGd ktD o07 pjd ubv vMJ v8O wuB wyG xjF AKh DCj D36 GT7 H3D Jik JKh KtR K2e LfJ Lqj Nzc Oie OiU R7V ScB SSM SVi UYg WwF 1zg 4cQ 422 6xU 6Vh 7vE


php脚本

<?php
$s = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
for ($a = 0; $a < 62; $a++) {for($b = 0;$b < 62;$b++){$f = $s[$a].$s[$b];$pass = md5($f);if (substr($pass, 1, 1) === substr($pass, 14, 1) && substr($pass, 14, 1) === substr($pass, 17, 1)) {if ((intval(substr($pass, 1, 1)) + intval(substr($pass, 14, 1)) + substr($pass, 17, 1)) / substr($pass, 1, 1) === intval(substr($pass, 31, 1))) {echo $f,"\n";error_reporting(0);}}}       
}
?>

答案有:  3j   ZE   

 

方法二:

就是用爆破(题目名)的方式

 方法三:(最简单)

根据题目得知当pass满足条件后会

 include('flag.php');
将指定路径下的flag.php文件的内容插入并执行到当前代码的位置

那么可以直接访问/flag.php试试(我觉得这算一个小bug吧,一般来说是访问不了的)

flag{8277e0910d750195b448797616e091ad}

十二.XFF 

这道题挺简单的

X-Forwarded-For(简称XFF

是一个HTTP 请求头字段,主要用于记录客户端的原始 IP 地址,尤其在客户端与服务器之间存在代理(如反向代理、负载均衡器)时发挥作用。 

 因此,只需要伪造个XXF就行了

简单拿下

flag{847ac5dd4057b1ece411cc42a8dca4b7}

十三.rce1 

又是php

就过滤了个空格,能拿到flag算我输
IP :<?php$res = FALSE;if (isset($_GET['ip']) && $_GET['ip']) {$ip = $_GET['ip'];$m = [];if (!preg_match_all("/ /", $ip, $m)) {$cmd = "ping -c 4 {$ip}";exec($cmd, $res);} else {$res = $m;}
}
?>

先讲知识点 

 shell 命令分隔符

符号作用
;按顺序依次执行各个命令。
&&前一个成功才执行下一个。
||前一个失败才执行下一个。
&前一个在后台执行,同时可执行其他命令。
|前一个的输出作为后一个的输入。

 

isset()函数

作用:用于检测变量是否已设置且值不为 null。 

本题作用:检查$_GET超级全局数组中是否存在键名为ip的元素。

preg_match_all()函数

作用:PHP 中的正则表达式匹配函数,用于在字符串中全局搜索所有匹配项

本题作用:检查输入是否包含空格,若不包含则继续执行后续代码

${IFS}

  • IFS(Internal Field Separator)是 Bash 中的内置变量,表示内部字段分隔符,默认包含空格、制表符和换行符。
  • ${IFS} 会被替换为 IFS 变量的当前值。

所以这段代码实现了一个 ping 工具网页接口:检查用户输入的 IP 是否存在且不含空格,若通过则执行 ping 命令并返回结果,否则提示错误。

所以先输入127.0.0.1;ls看看 (其实只输入;ls也行)

 欧克,看来是有用的,接下来查看fllllaaag.php文件

输入;cat${IFS}fllllaaag.php

 发现啥都没有,其实在这呢

flag{a3949821f7627a7fd30ab0722ff9b318}

十四.GET-POST

 这题也非常简单

先用GET请求传        ?id=1

再用POST请求传        jljcxy=flag

简简单单

flag{a52b7cac3af0b081349001c92d79cc0a}

十五.被黑掉的站 

老规矩,先用dirsearch目录扫描

扫出来两个,分别访问看看

这么看来应该是用/index.php.bak中的密码对/shell.php进行爆破,废话不多说开爆

小技巧:/index.php.bak这里可以按ctrl+u变成下面这样

flag{8e539a7a46fea05dea18b9b9f9ff6a63}

Day5:

原本打算每天做5道题如何写一篇笔记的,前面两天太懒了,题目做了但是笔记懒得写了。。哎,实在是太懒了

不行,本人在此立下flag,每天必须写一篇笔记,做不到的话3天不碰手机


今天写了五道题,打了一个非常简单的靶机,学会了用hydra工具爆破,还学会了一些php知识......累了

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

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

相关文章

导诊系统的科室和症状词库如何扩展?

要扩展导诊系统的科室和症状词库&#xff0c;可以通过以下几种方式实现&#xff1a;1. 直接扩展科室定义&#xff08;推荐&#xff09;在初始化代码中直接添加新的科室及对应症状&#xff1a;# 扩展后的科室定义 depts [Department("内科", ["发热", &quo…

通过Prompt生成互动式网页HTML案例探索(二)

之前提到了一些【通过Claude 生成图片的prompt集锦&#xff08;一&#xff09;】&#xff0c;本篇沿着试着用prompt生成互动式网页 文章目录 1 什么是互动式网页&#xff1f;1.1 一个&#x1f330;1.1 核心能力列举1.3 部署方式 2 猜测秘塔AI搜索生成HTML的Prompt3 mozi大佬&am…

暑假读书笔记第四天

今日文章&#xff1a; 小林coding&#xff1a;什么是软中断&#xff1f; 目录软中断软中断概述软中断类型如何定位软中断 CPU 使用率过高的问题&#xff1f;其他: 往期打卡 软中断 中断是系统用来响应硬件设备请求的一种机制&#xff0c;操作系统收到硬件的中断请求&#xf…

跨平台的ARM 和 x86 Docker 镜像:汇编语言实验环境搭建

一、安装和配置 Docker 1.安装 Docker 官网链接&#xff1a;https://www.docker.com/ 以Debian(Ubuntu)系统为例: #安装依赖包 sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg lsb-release#添加 Docker 官方 GPG 密钥 sudo mkdir -p /etc/apt/keyr…

【前端知识】HTML页面渲染:底层原理与技术实现剖析

HTML页面渲染&#xff1a;底层原理与技术实现剖析HTML页面渲染&#xff1a;底层原理与技术实现剖析渲染引擎的核心工作流程深度解析渲染关键阶段1. 解析与构建DOM&#xff08;Document Object Model&#xff09;2. 构建CSSOM&#xff08;CSS Object Model&#xff09;3. 渲染树…

Catmull-Rom平滑多段线在奇异点处的扭曲问题(1)

Catmull-Rom在奇异点处的扭曲问题 引言 在计算机图形学和动画中&#xff0c;我们经常需要在已知点之间创建平滑的过渡。Catmull-Rom样条是一种流行的插值方法&#xff0c;它以简单直观的方式生成经过所有控制点的平滑曲线。本文将深入探讨Catmull-Rom插值的原理、实现和应用。…

SX8652IWLTRT Semtech升特超低功耗触控芯片 12通道+I²C接口 重新定义人机交互!

SX8652IWLTRT&#xff08;Semtech&#xff09;产品解析与推广文案一、产品定位SX8652IWLTRT是Semtech&#xff08;升特半导体&#xff09;推出的低功耗电容式触摸控制器&#xff0c;采用IC接口&#xff0c;专为便携式设备和小家电的触摸交互设计&#xff0c;支持多点触控和手势…

第02章 MySQL环境搭建

1.MySQL的卸载 步骤1&#xff1a;停止MySQL服务 在卸载之前&#xff0c;先停止MySQL8.0的服务。按键盘上的“Ctrl Alt Delete”组合键&#xff0c;打开“任务管理器”对话框&#xff0c;可以在“服务”列表找到“MySQL8.0”的服务&#xff0c;如果现在“正在运行”状态&#…

实战Linux进程状态观察:R、S、D、T、Z状态详解与实验模拟

前言 在Linux系统中&#xff0c;进程状态是系统管理和性能调优的核心知识。一个进程从诞生到终止&#xff0c;会经历运行&#xff08;R&#xff09;、可中断睡眠&#xff08;S&#xff09;、不可中断睡眠&#xff08;D&#xff09;、停止&#xff08;T&#xff09;、僵尸&#…

数据库与关系数据库的区别是什么

数据库&#xff0c;简单来说&#xff0c;就是一个存储数据的地方&#xff0c;就像一个超级大仓库&#xff0c;能把各种各样的数据都收纳进来。它可以是一个简单的文本文件&#xff0c;用来记录一些基本信息&#xff1b;也可以是一个复杂的系统&#xff0c;存储着企业的大量业务…

如何解决微信小程序出现两个下拉刷新样式?

在微信小程序中&#xff0c;如果出现两个下拉刷新的情况&#xff0c;可能是因为在多个地方启用了下拉刷新功能&#xff0c;或者在同一个页面中多次调用了下拉刷新的API。以下是一些可能的原因和解决方法&#xff1a; 多次调用下拉刷新API&#xff1a; 确保在页面的生命周期中只…

(3)手摸手-学习 Vue3 之 变量声明【ref 和 reactive】区别

手摸手-学习 Vue3 之 变量声明【ref 和 reactive】区别前言ref 扩展ref 和 reactive 区别前言 ref 扩展 在之前博文《&#xff08;2&#xff09;手摸手-学习 Vue3 之 变量声明【ref 和 reactive】》中有提到&#xff1a; 当时已基本类型 进行演练说明&#xff0c;此时以 对象…

机器视觉运动控制一体机在SCARA机器人柔振盘上下料的应用

市场应用背景 SCARA机器人是一种高效、高精度的圆柱坐标系工业机器人&#xff0c;专精于装配任务。其独特的机械结构赋予其在特定方向&#xff08;通常是XY平面&#xff09;高度顺应性&#xff0c;同时在垂直方向保持优异刚性。 SCARA机器人本体通常包含三个轴线平行的旋转关…

3D 演示动画在汽车培训与教育领域中的应用

在企业培训这一至关重要的领域中&#xff0c;3D 演示动画犹如一颗璀璨的明星&#xff0c;发挥着无可替代的关键作用&#xff0c;大显身手。以某知名汽车制造企业为例&#xff0c;当对新入职员工开展汽车装配培训工作时&#xff0c;企业精心利用先进的 3D 演示动画技术制作了极为…

华锐视点 VR 污水处理技术对激发学习兴趣的作用​

华锐视点的 VR 虚拟仿真平台&#xff0c;尤其是 VR 污水处理模块&#xff0c;不仅仅是让学生观察&#xff0c;还设置了丰富多样的互动操作环节&#xff0c;充分激发学生的学习兴趣和主动性。​在平台的 VR 污水处理模拟中&#xff0c;学生可以模拟操作各种污水处理设备。比如&a…

百度斩获大模型中标第一,股价上涨5%

7月7日&#xff08;周一&#xff09;&#xff0c;百度&#xff08;BIDU.US&#xff09;股价上涨 5%&#xff0c;收报 90.68美元。最新数据显示&#xff0c;2025上半年我国大模型相关项目呈现爆发式增长态势&#xff1a;中标项目累计达 1810个&#xff0c;金额突破 64亿元&#…

【计算机网络】4网络层②

概念是什么?以太网有线联网的标准LAN小范围网络(家里/公司)WAN大范围网络(跨城市)Internet全球公共互联网 🌍internet任意互联的网络 🔗子网将一个LAN通过路由器的硬件隔离分为多个LAN(广播域)VLAN将一个LAN通过交换机的软件方法分为多个VLAN(广播域)以太网和Wi-Fi建L…

微信小程序81~90

1. 配置分包加载以及打包、引用原则 小程序如果需要进行分包加载&#xff0c;需要在 app.json 中&#xff0c;通过 subPackages 或者 subpackages 定义分包结构 每个分包结构含三个常用字段&#xff1a; root&#xff1a;分包的根目录&#xff0c;该目录下的所有文件都会被打包…

深度学习——神经网络1

一、神经网络 1.神经网络定义&#xff1a;人工神经网络&#xff08;Artificial Neural Network&#xff0c;ANN&#xff09;也简称为神经网络&#xff08;NN&#xff09;&#xff0c;是一种模仿生物神经网络结构和功能的计算模型。人脑可以看作是一个生物神经网络&#xff0c;由…

ipmitool 使用简介(ipmitool sel list ipmitool sensor list)

常用IPMI命令扩展使用ipmitool查看传感器信息ipmitool是一个用于管理IPMI&#xff08;Intelligent Platform Management Interface&#xff09;设备的命令行工具&#xff0c;可用于监控服务器硬件状态&#xff0c;包括传感器数据。运行以下命令可以列出所有传感器信息&#xff…