1、反序列化
序列化就是将对象转化为字节序列从而便于存储运输,反序列化则与其相反。
常见PHP序列化函数unserialize();
常用的魔术方法:
构造函数__construct(),析构函数__destruct(),__wakeup(),__toString(),__sleep()。
这些函数在传递参数时未进行严格过滤,攻击者就可以构造恶意代码并将其序列化后传入函数,从而导致反序列化
2、Fastjson
原理:
在请求包中修改@type的值来反序列化为指定的类型,而fastjson在反序列化中会设置和获取类中的属性,若类中有恶意方法就会导致代码执行等问题。
判断:
通过构造错误的post请求,查看服务器报错返回包中是否存在fastjson字样
3、Shiro
原理:在用户登陆时提供可传递选项remember me,若勾选,则下次登陆会携带cookie中的remember me字段发起请求,就不需要重新输入用户名和密码。
判断:
查看数据返回包中是否包含rememberMe=deleteMe字段
4、其他
(1)CSRF、SSRF、重放攻击的区别
CSRF:跨站请求伪造攻击,由客户端发起;
SSRF:是服务器端请求伪造,由服务器发起;
重放攻击:将截获的数据包进行重放,达到身份认证目的。
(2)提权
Linux里面我只接触过sudo提权;
Windows提权的话有一个内核提权,systeminfo寻找对应EXP
(3)常见端口号对应的服务
20、21:FTP
22:SSH
80:web服务(http协议)
3306:MySQL
3389:远程桌面
(4)SQL注入写shell
联合注入写:?id=1' union select1,"一句话",3 into outfile 路径
mysql写shell:select "一句话" into outfile "路径"