end遇见不懂的问题

it2023-10-07  71

strcmp() 函数 语法:strcmp(string1,string2)

0 - 如果两个字符串相等 <0 - 如果 string1 小于 string2 >0 - 如果 string1 大于 string2

GET请求:?a[]=2

因为strcmp()无法比较数组,则报错并返回0,0==0成立

md5()弱类型和sha1()函数(绕过) 1.md5: ①经过md5加密之后相等,首先我们能想到的是md5的一个缺陷,也就是说经过md5加密之后以0e开头的,值都为0,那是因为0e在比较的时候会将其视作为科学计数法,所以无论0e后面是什么,0的多少次方还是0。

a=s878926199a&b=s155964671a

②md5是获取不到数组的值的,会默认数组为0,那么如果输入两个数组并赋予不同的值

2.sha1()函数 传入的是数组时,会报错,返回为NULL,当传入的两个参数都是数组直接相等

isnumeric( )函数 检测字符串是否只由数字组成,如果字符串中只包括数字,就返回Ture,否则返回False。

session session是一次浏览器和服务器的交互的会话。可以将一个变量存入全部的 $_SESSION[‘name’]中,这样php的各个页面和逻辑都能访问到,所以很轻松的用来判断是否登陆。 session信息存在于服务器端。

GIT

hook:存放一些sheel的地方。 info:存放仓库的信息 object:存放所有git对象的地方 refs:存放提交hash的地方 config:github的配置信息 description:仓库的描述信息,主要给gitweb等git托管系统使用 HEAD:映射到ref引用,能够找到下一次commit的前一次哈希值 logs:保存所有更新的引用记录

一个commit对象里面会包含有 tree(相当于文件夹)、parent、author和committer;一个tree里面会包含tree和blob(具体的内容);而一个blob指的就是具体的文件内容。在git中,blob与文件名无关,只与文件内容有关,即文件内容相同,在git中是同一个blob。

使用githack python githack.py URL :还原数据包,将泄露的部分下载下来。

git log:查看日志

git diff 文件名:可以检查当前文件与上次文件的不同之处。

git ls-file -s --文件名:查看相应文件的Blob

git cat-file -p 文件名:查看文件内容

PHP伪协议

一.【file://协议】 条件: file:// 协议在双off的情况下也可以正常使用; allow_url_fopen :off/on allow_url_include:off/on

file:// 用于访问本地文件系统,在CTF中通常用来读取本地文件的且不受allow_url_fopen与allow_url_include的影响

file:// [文件的绝对路径和文件名] 例如: http://127.0.0.1/cmd.php?file=file://D:/soft/phpStudy/WWW/phpcode.txt

二.【php://协议】 条件: 不需要开启allow_url_fopen,仅php://input、 php://stdin、 php://memory 和 php://temp 需要开启allow_url_include。

php:// 访问各个输入/输出流(I/O streams),在CTF中经常使用的是php://filter和php://input,php://filter用于读取源码,php://input用于执行php代码

php://filter: 读取源代码并进行base64编码输出,不然会直接当做php代码执行就看不到源代码内容了。 http://127.0.0.1/cmd.php?file=php://filter/read=convert.base64-encode/resource=./cmd.php

php://input: 可以访问请求的原始数据的只读流, 将post请求中的数据作为PHP代码执行。 例如:http://127.0.0.1/cmd.php?file=php://input [POST DATA] <?php phpinfo()?>

三.【zip://, bzip2://, zlib://协议】 条件: zip://, bzip2://, zlib://协议在双off的情况下也可以正常使用;

zip://, bzip2://, zlib:// 均属于压缩流,可以访问压缩文件中的子文件,更重要的是不需要指定后缀名。

1.【zip://协议】

使用方法: zip://archive.zip#dir/file.txt zip:// [压缩文件绝对路径]#[压缩文件内的子文件名] 例: http://127.0.0.1/cmd.php?file=zip://D:/soft/phpStudy/WWW/file.jpg%23phpcode.txt

由于#在get请求中会将后面的参数忽略所以使用get请求时候应进行url编码为%23,且此处经过测试相对路径是不可行,所以只能用绝对路径。

2.【bzip2://协议】

使用方法: compress.bzip2://file.bz2 例: http://127.0.0.1/cmd.php?file=compress.bzip2://D:/soft/phpStudy/WWW/file.jpg

3.【zlib://协议】

使用方法: compress.zlib://file.gz 例: http://127.0.0.1/cmd.php?file=compress.zlib://D:/soft/phpStudy/WWW/file.jpg

四.【data://协议】 条件: data://协议必须双在on才能正常使用; allow_url_fopen :on allow_url_include:on

例:http://127.0.0.1/cmd.php?file=data://text/plain,<?php phpinfo()?> or http://127.0.0.1/cmd.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

ook解密网站: https://www.splitbrain.org/services/ook

最新回复(0)