菲律宾 网站开发公司,阿坝县建设局网站,河北智慧团建网站登录,网站制作公司多少费用目录
十一.爆破
PHP的基本语法
变量与常量
数据类型
流程控制
函数
文件操作
数据库交互
1.substr() 函数
2. intval() 函数
十二.XFF
X-Forwarded-For#xff08;简称XFF#xff09;
十三.rce1 shell 命令分隔符
isset()函数
preg_match_all()函数
${IFS}…目录
十一.爆破
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提供了丰富的流程控制语句包括if、switch、while、for等。例如 $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 → 5apple → 0。其他类型布尔值、浮点数等按规则转换如 true → 13.14 → 3。 总之上面php代码的意思是
用户需找到一个字符串使其 MD5 哈希值同时满足
第 2、15、18 位字符相同如均为2这三位的数值运算结果例如(222)/221恰好等于第 32 位字符如1。
方法一根据php代码推算出答案
下面是python脚本
import string
import hashlib
sstring.ascii_lettersstring.digits
def intval(m):try:mint(m)return mexcept:return 0
for i in s:for j in s:for k in s:a i jkmd5 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} IFSInternal 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请求传 ?id1
再用POST请求传 jljcxyflag
简简单单 flag{a52b7cac3af0b081349001c92d79cc0a} 十五.被黑掉的站 老规矩先用dirsearch目录扫描 扫出来两个分别访问看看 这么看来应该是用/index.php.bak中的密码对/shell.php进行爆破废话不多说开爆
小技巧/index.php.bak这里可以按ctrlu变成下面这样 flag{8e539a7a46fea05dea18b9b9f9ff6a63} Day5 原本打算每天做5道题如何写一篇笔记的前面两天太懒了题目做了但是笔记懒得写了。。哎实在是太懒了 不行本人在此立下flag每天必须写一篇笔记做不到的话3天不碰手机 今天写了五道题打了一个非常简单的靶机学会了用hydra工具爆破还学会了一些php知识......累了