我对SQL注入的了解——基础知识点(持续补充中...)

随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
在这里插入图片描述
SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。

但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析,构造巧妙的SQL语句,从而成功获取想要的数据,是高手与“菜鸟”的根本区别。


例如下面这个命令,他是从后台(数据库)取字段值,并核查输入的字段与数据库中的相应字段是否能匹配上,如果可以匹配上,即为成功,方可进行下一步的命令操作。

select * from user where uname="1" or 1=#" and pwd="$p"

系统性的学习要有系统性的进度引导:

一、SQL命令:

  1. 如何查询所有数据库
  2. 如何查询该库中的数据表
  3. 如何查询表中的字段

二、了解SQL注入:

  1. 为什么会产生SQL注入(通过两道题目)
  2. 了解常用的闭合符号γ(# --+ </**/>
  3. 联合查询注入的步骤

三、掌握sqlmap的基本使用

  1. 判断是否存在注入
    python sqlmap.py -u "url"
  2. 获取全部数据库
    python sqlmap.py -U URL --dbs
  3. 获取当前数据库
    python sqlmap.py -u URL --current-db
  4. 获取当 前数据库里所有表
    python sqlmap.py -u URL -D DB--tables
  5. 获取表的字段
    python sqlmap.py -u URL -D DB-T users - -columns
  6. 爆值
    python sqlmap.py -u URL -D DB-T users -C "password, username" --dump25

四、 了解python脚本


未完成,待补充…


版权声明:本文为King_Ho原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。