CSRF:cross site request forgery 跨站请求伪造漏洞
A网站(合法)-----清求-------服务器C B网站(非法)----请求-------服务器C 如何实现让B网站发送的请求到服务器?比如,一些非法的链接弹框,点击后,就会把相应的请求发送给服务器C。
B网站指一些非法链接
2、为什么能实现? (1)浏览器中要保留你的登录账号的cookie,即需要保持站点登录状态
(2)打开恶意链接
3、CSRF工作原理
(1)用户已经登录到dvwa(A网站),在浏览器中生成cookie
(2)打开某个链接的B网站,并且dvwa是登录状态
(3)访问恶意链接的网站B,要求用cookie保存的那个身份去访问信任网站A
(4)始终用A身份去访问,A的服务器没办法去判断这种请求是否合法,给出相应的回应。 比如:B网站里面,有一条修改账户密码的请求。那么当用户点击链接时候,并且保持A网站是登录状态,A的服务器收到的是B 发出修改密码请求,但服务器不知道。这样就把A的密码改了。
CSRF模块中,修改密码之后,如何恢复初始密码?
1、能进的去dvwa,恢复数据库
2、进不去dvwa,请进phpmyadmin,直接修改
在表里面,把abcd加密为md5,然后编辑表,把密码改为abcd
实践:进CSRF模块中,尝试修改密码。用两种方法恢复密码。
命令注入
在web页面中输入dos命令,达到查看操作系统的用户、目录或端口等等信息,甚至直接操作计算机底层磁盘,比如增加账户等 等。 构造语句,系统命令拼接到正常的输入,传递到特殊函数的参数中,造成系统命令被执行的一种攻击方式。 脚本语言有内置函数可调用系统操作的命令: php中system(0,exce()等执行函数,可执行系统命令。
正常输入: 系统命令: Windows中常用的系统命令: dir:查看当前目录 ver:查看版本 systeminfo:查看操作系统信息 whoami:查看当前用户 copy:复制文件 type:查看文件内容
Linux常用的系统命令:
ll
cd
mkdir
lsblk
yum
ping
ip addr
vi
常用连接符
A&B:执行A,执行B A&&B:A命令执行成功,然后再执行B AB:A命令语句的输出,作为B命令语句的输入来执行 AB:A命令执行失败,然后才会执行B
127.0.0.1 连接符 系统命令
127.0.0.1&ls
127.0.0.1&dir