【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
英文地址,請注明出處:http://en.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通道+I2C接口 重新定義人機交互!

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…