跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

  • 0

针对小白的一个sql注入教程(联合查询,盲注等等)


HACK1949

问题

针对小白的一个sql注入教程(联合查询,盲注等等)

5ff650e73fbc6.png

SQL句子根底:

留意在mysql里每句句子完毕一定要加分号;

1.查询句子:

select database();    #查询当时运用的数据库

select user();            #查询当时用户

select now();            #查询当时时间

select version();        #查询数据库版本

show databases;       #查询一切数据库

show tables;              #查询当时数据库下的一切表

2.树立表库:

1 create database name; #树立数据库name为你要树立的库的姓名

drop database name;    #删去数据库 name为你要删去的数据库名

3 create table name (id int,username varchar(30),password varchar(40));                                                                            #树立表name为表名 其中id,username,password为字段,int为整形,varchar为字符串,30与40代表能储存的最大长度

4. desc name;                     #看表结构,name为表名

5. drop table name;           #删表name为表名

6. insert into name values(1,'names'); #给表增加记载,name为表名,增加1和names

3.查询数据:

1.select * from name;       #查询表的一切记载,name为表名

2. select * from name where username='admin';  #从表中查找条件usrename为admin的所以记载,可以再用and来加条件

3. select * from name order by 3;#检查字段长

5. select * from name union select database(); #首先查询name表的所以记载,然后查询当时数据库

4.注释:

单行注释:# -- (留意--后边有个空格)

多行注释:/**\   /*放在要注释的开始  *\ 放在完结注释的结束

SQL注入原理

sql 注入进犯:经过构建特别 sql 指令作为参数传入 web 应用程序

联合查询注入

1.mysql里的元数据库:information_schema #用于寄存mysql的所以数据

2.mysql里的元数据表:table 表:主要是记载 Mysql 当中的所库及一切表,表的字段 table_schema(用于记载库名)table_name(用于记载表名)

column 表:主要是用于记载库中的表,表中的字段该表的字段 table_schema(用于记载库名)table_name(用于记载表名),column_name(用于记载字段名)

咱们以sqlilabs的第一关进行解说,sqlilabs的建立可以参照前面放的dvwa的建立,我运用到的手注东西为hackbar

1.首先咱们运用转义符\看看闭合用的符号是什么

1609859348_5ff4811425d951d7751d0.png!small?1609859348427

2.经过报错咱们能看到闭合符号用的是单引号

接着咱们运用 order by 来检查字段

运用到的指令是

1609859439_5ff4816fdbf5775bc8137.png!small?1609859440116

咱们这儿运用了--+注释掉了后边的代码,咱们的根本便是要闭合它本来的sql句子然后再注释掉后边的会报错的句子,这样咱们注入sql句子就能被对方数据库正常执行了

发现字段为3

1609859586_5ff48202d81790edd8ac6.png!small?1609859587267

咱们给参数 id 为一个不存在的页面

接着运用 union 联合查询来得知数据库库名是什么用到的注入句子是

1609859777_5ff482c1541ba063fe960.png!small?1609859777603

数据库名咱们拿到了,接着咱们运用之前提到过的元数据库爆破表名

1609859869_5ff4831d0d362035d7dba.png!small?1609859869294

成功拿到表名

Group_concat()这个函数简略来说是让咱们查询到的东西放在 1 行显现咱们经过判别发现 users 表最有用咱们就检查 users 表的字段名

用到的句子

1609859969_5ff48381272519becf886.png!small?1609859969480

成功拿到字段名咱们能知道这个表是用来寄存用户名和暗码的,咱们接着来取出数据  运用到的指令是

1609860012_5ff483acbdabd7b7f487a.png!small?1609860013011


成功拿到数据,增加冒号的原因是更好分辨什么是 username 什么是 password

链接帖子
意见的链接
分享到其他网站

这个问题有0个答案

推荐的帖子

此问题没有答案

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...