[Web安全]PHP伪协议 最近php伪协议的各种神奇妙用好像突然又常常提到了,php中支持的伪协议有下面这么多 复制代码 file:// — 访问本地文件系统 http:// — 访问 HTTP( manual/zh/wrappers.php.php 有两个比较重要的配置在php.ini中,allow_url_fopen和allow_url_include会影响到fopen等等和include等等函数对于伪协议的支持 php://filter 这篇文章的关键在于讨论php://filter,事实上,这也是我们常常使用的一个伪协议,在任意文件读取,甚至getshell的时候都有利用的机会。
、require_once()、highlight_file() show_source() 、readfile() 、file_get_contents() 、fopen() 、file() 有哪些伪协议 page=php://filter/read=convert.base64-encode/resource=/flag.php file://协议 (读文件) 用于访问本地文件系统,不受allow_url_fopen 请求中的数据作为PHP代码执行 php://input 可以用来生成一句话木马 利用该方法,我们可以直接写入php文件,输入file=php://input,然后使用burp抓包,写入php代码: data://协议 page=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4= zip://, bzip2://, zlib://协议 zip://, bzip2://, zlib:// 均属于压缩流,可以访问压缩文件中的子文件,不需要指定后缀名 如果网站允许我们上传压缩文件,我们也可以将php文件压缩后进行上传,再通过zip://协议执行。
个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。
三、PHP伪协议 PHP伪协议事实上就是支持的协议与封装协议(12种) ? ? 测试代码 路径为:E:\phpStudy\WWW\include.php ? ? 常用协议 1、目录遍历获取flag ? ? 3、file:// 用于访问本地文件系统,在CTF中通常用来读取本地文件 file:// 协议在双off的情况下也可以正常使用; allow_url_fopen :off/on allow_url_include 使用data协议或者php://input协议判断是远程文件包含还是本地文件包含。 ? ? 发现没有回显,基本确定是本地文件包含。
# 默认开启,该选项为on便是激活了URL形式的fopen封装协议使得可以访问URL对象文件等。 allow_url_include:off file://协议 file在allow_url_fopen和allow_url_include均off的情况下也可使用。 文件系统是PHP使用的默认封装协议,展现了本地文件系统。 当指定了一个相对路径(不以/、\、\或 Windows 盘符开头的路径)提供的路径将基于当前的工作目录。 参数列表如下 例题【读取源代码】- php://filter 分析下代码,告诉我们flag在/flag里面,需要使用php://伪协议。 data://协议 根据官方文档,使用data://协议必须满足allow_url_fopen和allow_url_include都开启。 以下代码打印data://的内容。 <?
ISO 15765协议是一种CAN总线上的诊断协议。 根据这个传输流程我们可以得到诊断报文的传输延迟的公式: T=N_As+N_Bs+N_Cr-Tan+(Ttan+STmin)N-STmin 附加一段相关伪代码: if(接收长度!
1.伪类与伪元素 先说一说为什么css要引入伪元素和伪类,以下是css2.1 Selectors章节中对伪类与伪元素的描述: CSS introduces the concepts of pseudo-elements 直译过来就是:css引入伪类和伪元素概念是为了格式化文档树以外的信息。也就是说,伪类和伪元素是用来修饰不在文档树中的部分,比如,一句话中的第一个字母,或者是列表中的第一个元素。 CSS3规范中的要求使用双冒号(::)表示伪元素,以此来区分伪元素和伪类,比如::before和::after等伪元素使用双冒号(::),:hover和:active等伪类使用单冒号(:)。 实际上,伪元素使用单冒号还是双冒号很难说得清谁对谁错,你可以按照个人的喜好来选择某一种写法。 4.伪类与伪元素的具体用法 这一章以含义解析和例子的方式列出大部分的伪类和伪元素的具体用法。 处于试验阶段的伪类或伪元素会在标题中标注。 伪类 状态 由于状态伪类的用法大家都十分熟悉,这里就不用例子说明了。
CSS伪类与伪元素 每日更新前端基础,如果觉得不错,点个star吧 ? https://github.com/WindrunnerMax/EveryDay CSS引入伪类和伪元素概念是为了格式化文档树以外的信息。 也就是说,伪类和伪元素是用来修饰不在文档树中的部分,比如,一句话中的第一个字母,或者是列表中的第一个元素。 伪类 伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。比如说,当用户悬停在指定的元素时,我们可以通过:hover来描述这个元素的状态。 CSS3规范中要求使用单冒号:用于CSS3伪类,双冒号::用于 CSS3伪元素,目的是区分伪类和伪元素。
1.伪类nth-child(n):选中其父元素的第 n 个子元素p:nth-child(2) { background: yellowgreen;}图片2.伪元素::before 与 ::afterp
-- 1.通过我们的观察发现a标签存在一定的状态 1.1默认状态, 从未被访问过 1.2被访问过的状态 1.3鼠标长按状态 1.4鼠标悬停在a标签上状态 2.什么是a标签的伪类选择器? a标签的伪类选择器是专门用来修改a标签不同状态的样式的 3.格式 :link 修改从未被访问过状态下的样式 :visited 修改被访问过的状态下的样式 :hover 修改鼠标悬停在a标签上状态下的样式 :active 修改鼠标长按状态下的样式 4.注意点 4.1a标签的伪类选择器可以单独出现也可以一起出现 4.2a标签的伪类选择器如果一起出现, 那么有严格的顺序要求 编写的顺序必须要个的遵守爱恨原则
2.2.9 伪共享 2.2.9.1什么是伪共享 计算机系统中为了解决主内存与CPU运行速度的差距,在CPU与主内存之间添加了一级或者多级高速缓冲存储器(Cache),这个Cache一般是集成到CPU内部的 当多个线程同时修改一个缓存行里面的多个变量时候,由于同时只能有一个线程操作缓存行,所以相比每个变量放到一个缓存行性能会有所下降,这就是伪共享。 ? image.png 如上图变量x,y同时被放到了CPU的一级和二级缓存,当线程1使用CPU1对变量x进行更新时候,首先会修改cpu1的一级缓存变量x所在缓存行,这时候缓存一致性协议会导致cpu2中变量x 2.2.9.2为何会出现伪共享 伪共享的产生是因为多个变量被放入了一个缓存行,并且多个线程同时去写入缓存行中不同变量。那么为何多个变量会被放入一个缓存行那。 ,以及如何避免,并证明多线程下访问同一个cache行的多个的变量时候才会出现伪共享,当单个线程访问一个cache行里面的多个变量时候反而对程序运行起到加速作用。
:first-letter 伪元素的样式将应用于元素文本的第一个字(母)。 :first-line 伪元素的样式将应用于元素文本的第一行。 :before 在元素内容的最前面添加新内容。 伪元素和伪类的区别: 与伪类针对特殊状态的元素不同的是,伪元素是对元素中的特定内容进行操作,设计伪元素的目的就是去选取诸如元素内容第一个字(母)、第一行,选取某些内容前面或后面这种普通的选择器无法完成的工作 它控制的内容实际上和元素是相同的,但是它本身只是基于元素的抽象,并不存在于文档中,所以叫伪元素。
1.什么是伪路径? 存在于设计之中,之所以叫伪路径,是因为这样的路径并未发挥真正的功能,在时序分析时不需要我们去分析。 2.为什么设置伪路径? 去除无效的时序路径 节约编译时间和资源——可以去除伪路径的优化 命令:set_false_path ? s,p,x,d都是设计中的模块 ? ? ? 伪路径类型1 ? mux1/I1] -to [get_ports B] 或者 set_false_path -through [get_pins mux0/I0] -through [get_pins mux1/I1] 伪路径类型
CSS 引入伪类和伪元素的概念是为了格式化文档树以外的信息。也就是说,伪类和伪元素是用来修饰不在文档树中的部分,比如,一句话中的第一个字母,或者是列表中的第一个元素。 2.伪类和伪元素的概念 2.1 伪类: 伪类用于当已有元素处于某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。 3.伪类列举 伪类和伪元素-1.png 3.1 状态伪类 状态伪类是基于元素当前状态进行选择的。在与用户的交互过程中元素的状态是动态变化的,因此该元素会根据其状态呈现不同的样式。 注意,伪类的名称不区分大小写。 4 伪元素列举 伪类和伪元素-2.png 4.1 单双冒号 选择器 示例 示例说明 ::before/:before 在被选元素前插入内容 需要使用 content 属性来指定要插入的内容。
伪类的效果可以通过添加一个实际的类来达到,而伪元素的效果则需要通过添加一个实际的元素才能达到,这也是为什么他们一个称为伪类,一个称为伪元素的原因。 伪类的种类 ? ---- 伪元素的种类 ? ---- 区别 ---- ---- ---- ---- ---- ---- ---- ---- 这里用伪类 :first-child 和伪元素 :first-letter 来进行比较。
背景 写了这么多年代码,对CSS中的伪类和伪元素竟然没有细致的进行过学习总结,由此可见在实际代码开发中,用的也确实不多,也就用过一些:first-child,:hover之类的吧,其它的连before 什么的都没用过,于是迫切需要大于伪元素与伪类进行一个系统整体的学习。 伪类和伪元素 伪类:是以一个冒号作为前缀,被添加到选择器的末尾,当你希望在特定状态下(:hover)才被呈现到指定元素时,可以往元素的选择器后面加上伪类。 常用的伪类和伪元素 伪类可以从状态类伪类、结构类伪类、其它伪类和表单相关伪类进行分类。 状态类伪类:** :hover、:link、:active、:visited、:focus** 结构类伪类:** :first-child、:last-child、:nth-child(n)** 其它伪类
document.getElementsByTagName再熟悉不过,对arguments也多有耳闻,我们时常针对其进行遍历,通过数组下标进行访问,但是它们却是数组中的“冒牌货”,一起来看今天要说的“伪数组 何为伪数组 伪数组(类数组):无法直接调用数组方法,也无法使用length属性实现什么特殊的行为,但是!可以使用真正数组遍历的方法(for循环配合数组下标)来遍历它们。 常见的伪数组 arguments参数:arguments是一个对象,而非一个数组。 将伪数组转换为数组 可以使用Array.prototype.slice.call(fakeArray)将数组转化为真正的Array对象。 数组转换的实例 伪数组情况下,使用push方法 HTML5学堂 利利-独行冰海 堡堡41640
:link 伪类将应用于未被访问过的链接,与:visited互斥。 :visited 伪类将应用于已经被访问过的链接,与:link互斥。 :hover 伪类将应用于有鼠标指针悬停于其上的元素。 :active 伪类将应用于被激活的元素,如被点击的链接、被按下的按钮等。 :focus 伪类将应用于拥有键盘输入焦点的元素。 :first-child 找到父级中的第一个子元素,必须是这个标签
扫码关注腾讯云开发者
领取腾讯云代金券