php无字母数字代码执行
web平台为了防止攻击者使用恶意代码进行攻击,通常会过滤掉字母和数字,使攻击者无法使用数字和字母进行编程构造恶意代码。
为了绕过对字母和数字的过滤,可以使用符号的异或计算构造数字和字母。
例如,要构造字母A,可以使用以下代码:
<?php echo '?'^'~'; ?>

好记性不如烂笔头
web平台为了防止攻击者使用恶意代码进行攻击,通常会过滤掉字母和数字,使攻击者无法使用数字和字母进行编程构造恶意代码。
为了绕过对字母和数字的过滤,可以使用符号的异或计算构造数字和字母。
例如,要构造字母A,可以使用以下代码:
<?php echo '?'^'~'; ?>
在命令执行功能中,通常会过滤掉字母和数字,使攻击者无法使用正常的命令进行攻击。
php开发的网站,通过POST上传的文件.enctype设置成multipart/form-data,文件会被临时存放在/tmp目录下,完成路径为/tmp/phpXXXXXX,其中X为随机的大小写字母,这个路径时在php.ini配置文件中设置的。
在shell中可以使用. filename来执行filename文件,不需要filename有执行权限。其中.和filename之间有一个空格。空格在使用post传参时可以用+来代替,在url中用%20来代替。
如果我们对操作系统的桌面显示做了比例缩放,打开BurpSuite抓包时会遇到光标错位的问题,鼠标点击一个位置时光标会显示在靠后的位置上。
网上许多教程是基于BurpSuite professional版本的,而我使用的是BurpSuite community版本。解决的思路是一样的,修改抓包信息的文字大小,调整到合适的字体大小即可解决光标错位的问题。只是在community版本中选项位置有所不同。
Burp -> settings -> User -> Message editor -> Change font -> Size
1. PHP弱类型比较原理
// ZVAL结构自动类型转换
"123abc" == 123 // true - 字符串转数字取前导数字
"abc" == 0 // true - 无数字字符串转为0
"0e123" == "0e456" // true - 科学计数法都等于0
true == "nonempty" // true - 非空字符串转布尔
false == "" // true - 空字符串转布尔
null == 0 // true - NULL与0等价
[] == false // true - 空数组转布尔
【JPEG】:头部 FF D8 FF,尾部 FF D9
【PNG】:头部 89 50 4E 47 0D 0A 1A 0A,尾部 49 45 4E 44 AE 42 60 82
【GIF】:头部 47 49 46 38,尾部 00 3B
【BMP】:头部 42 4D,尾部 无固定结尾
【WEBP】:头部 52 49 46 46 xx xx xx xx 57 45 42 50,尾部 可变
【TIFF】:头部 49 49 2A 00 或 4D 4D 00 2A,尾部 无固定结尾
bkcrack 是一个用于解密 zip 加密包的工具,它可以使用明文攻击来解密 zip 加密包。
bkcrack下载及安装教程参见github项目库:bkcrack
bkcrack使用明文攻击解密zip加密包需要具备两个条件: 1.使用传统加密算法(如传统PKWARE加密、ZipCrypto等) 2.知道加密包中密文对应的明文,至少是连续的12个字节
用010Editor打开压缩包
一、压缩源文件数据区
50 4B 03 04:这是头文件标记(0x04034b50)
14 00:解压文件所需 pkware
版本
00 00:加密标识位(判断有无加密)
二、压缩源文件目录区
50 4B 01 02:目录中文件文件头标记(0x02014b50)
3F 00:压缩使用的 pkware 版本
数据型注入
字符型注入
1.查询数据库名称及版本
select database(),version();
适用场景
页面既无具体错误信息的回显,也无法通过返回信息得知输入内容的对错,这时使用时间盲注,利用页面加载时间判断输入内容的对错。
常用函数
if(判断语句,语句正确执行内容,语句错误执行内容)
将输入内容作为判断语句,判断输入内容的对错。判断语句正确时执行sleep()函数,让页面延时加载。语句错误时执行的内容设置为1,默认页面正常加载,无时延。
sleep(休眠时间) 单位:秒
sleep()函数用在语句正确时执行,一旦页面加载出现延迟即可判断输入内容是正确的。