当前位置: 首页 > news >正文

汕头网站快速排名提升就业信息网页设计论文

汕头网站快速排名提升,就业信息网页设计论文,网站盈利,通州宋庄网站建设打开以后什么都没有,源代码也没有,抓包也没有。那目录扫描一下。 命令:dirsearch -u d9284088-1850-4c34-a9be-95f105d2bc2c.node5.buuoj.cn:81 发现/.git/,可能是源码泄露,引用大佬文章 https://www.freebuf.com/ar…

打开以后什么都没有,源代码也没有,抓包也没有。那目录扫描一下。

命令:dirsearch -u d9284088-1850-4c34-a9be-95f105d2bc2c.node5.buuoj.cn:81

发现/.git/,可能是源码泄露,引用大佬文章

https://www.freebuf.com/articles/web/346607.html

利用工具:GitHack(一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,重建还原工程源代码。)

用githack提取出来

<?php
include "flag.php";
echo "flag在哪里呢?<br>";
if(isset($_GET['exp'])){if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) {if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) {if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) {// echo $_GET['exp'];@eval($_GET['exp']);}else{die("还差一点哦!");}}else{die("再好好想想!");}}else{die("还想读flag,臭弟弟!");}
}
// highlight_file(__FILE__);
?>

代码审计

if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) 是一种用于检测用户输入是否为特定格式的函数调用字符串的安全校验方法,常见于一些CTF(Capture The Flag)挑战或需要严格限制输入格式的场景中。它的核心目的是防止代码执行漏洞,尤其是远程代码执行(RCE)

🔍 代码逐行解析

  1. $_GET['exp']

    • 这是从URL的查询参数(GET请求)中获取名为 exp 的输入值。例如,如果URL是 http://example.com/?exp=abc(),那么 $_GET['exp'] 的值就是字符串 abc()。​这是一个直接的用户输入,在安全上是不可信的,需要严格验证。
  2. preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $input)

    • preg_replace​:这是PHP中用于执行正则表达式搜索和替换的函数。
    • ​正则模式 /[a-z,_]+\((?R)?\)/​:
      • [a-z,_]+:匹配一个或多个小写字母、下划线或逗号。这旨在匹配“函数名”。
      • \(\):匹配字面上的左圆括号和右圆括号。
      • (?R):这是正则表达式的递归模式。它表示“递归地匹配整个模式本身”。这使得正则表达式能够匹配嵌套的函数调用,例如 a(b(c()))
      • 整个模式的目的就是匹配所有形如 函数名()函数名(函数名()) 这样的字符串。
    • NULL​:在PHP中,preg_replace 的第二个替换参数是 NULL,这会导致所有匹配到的模式被替换为空字符串(即删除)。
  3. ';' === ...

    • 这行代码将经过 preg_replace 处理后的结果与一个单独的分号 ; 进行全等比较。
    • 逻辑是​:如果用户输入的 exp 参数完全由符合上述规则(字母、下划线、逗号组成的函数调用,允许嵌套)的字符串组成,那么这些部分会被全部删除,最后理论上应该什么都不剩下。
    • 但是,在PHP中,preg_replace 在处理空字符串时,如果没有任何匹配,可能会返回原始字符串或空字符串。这里的逻辑预期是,​合法的输入经过过滤后只会剩下一个分号 ;。如果比较成立(结果为真),则说明输入是“安全”的、符合预期的格式。

那么我们如何在不传入参数的情况下,达到命令执行最终获取 FLAG 呢?其实我们可以通过内置函数的返回值。获取我们想要的结果。

payload:

?exp=highlight_file(next(array_reverse(scandir(pos(localeconv())))));

值得一提的是

next() 输出数组中的当前元素和下一个元素的

因此尝试构造highlight_file(next(next(next(scandir(pos(localeconv()))))));失败

http://www.dtcms.com/a/539275.html

相关文章:

  • 网站营销的重要价值南昌建设医院官方网站
  • 网站开发方面的文献医院网站制作多少钱
  • 做爰全过程免费的视频 网站想见你一个网站怎么做
  • 做暑假工的网站软件园
  • 怎样在网站模板上做修改手机网站怎么改成电脑版
  • 网站建设网站软件有哪些内容规划管理部门的网站建设
  • 1元建站网站怎样建设
  • 怎么做招聘网站的调研进入网站前如何做环境检测
  • 汕头网站排名优化设计师工作室网站
  • 教做蛋糕的网站科技公司取名大全
  • 网站建设合同违约金细节盐边网站建设
  • 360建站网站seo搜索引擎优化案例
  • seo网站优化流程做淘宝客网站需要什么资质
  • 作品展示html5网站模板html5公司网站源码
  • 个人免费网站申请注册为网站网站做网络维护
  • 肉部网站建设包括哪些做网站不给提供ftp
  • 访问一个网站的过程如何判断一个网站的价值
  • 关于网站建设论文的结束语青岛嘎嘎
  • 内蒙古网站建设 阿里巴巴泉州网站优化排名
  • 个人建设网站需要什么证件吗搜一下百度
  • 公司想制作网站设计汽车网站
  • 网站推广排名如何做网站展示商品
  • 有没有做海报的网站推荐教学网站的设计
  • 淄博网站建设好的公司中国物流企业网
  • 电子专业毕设做网站做网站销售工资怎么样
  • 徐州网站建设模板友情链接怎么购买
  • 网站推广策划方案3000字输入网址一键生成app
  • 东莞建设工程交易中心门户网站商城网站建设php
  • 网站建设需求精确表番禺网站开发哪里好
  • 品牌网站建设方案ppt运城网站推广哪家好