-
游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。
赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!
TheHackerWorld官方
- 0
赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!
TheHackerWorld官方
问题
HACK1949
针对小白的一个sql注入教程(联合查询,盲注等等)
SQL句子根底:
留意在mysql里每句句子完毕一定要加分号;
1.查询句子:
1 select database(); #查询当时运用的数据库
2 select user(); #查询当时用户
3 select now(); #查询当时时间
4 select version(); #查询数据库版本
5 show databases; #查询一切数据库
6 show tables; #查询当时数据库下的一切表
2.树立表库:
1 create database name; #树立数据库name为你要树立的库的姓名
2 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(用于记载表名)
咱们以sqlilabs的第一关进行解说,sqlilabs的建立可以参照前面放的dvwa的建立,我运用到的手注东西为hackbar
1.首先咱们运用转义符\看看闭合用的符号是什么
2.经过报错咱们能看到闭合符号用的是单引号
接着咱们运用 order by 来检查字段
运用到的指令是
咱们这儿运用了--+注释掉了后边的代码,咱们的根本便是要闭合它本来的sql句子然后再注释掉后边的会报错的句子,这样咱们注入sql句子就能被对方数据库正常执行了
发现字段为3
咱们给参数 id 为一个不存在的页面
接着运用 union 联合查询来得知数据库库名是什么用到的注入句子是
数据库名咱们拿到了,接着咱们运用之前提到过的元数据库爆破表名
成功拿到表名
Group_concat()这个函数简略来说是让咱们查询到的东西放在 1 行显现咱们经过判别发现 users 表最有用咱们就检查 users 表的字段名
用到的句子
成功拿到字段名咱们能知道这个表是用来寄存用户名和暗码的,咱们接着来取出数据 运用到的指令是
成功拿到数据,增加冒号的原因是更好分辨什么是 username 什么是 password
链接帖子
意见的链接
分享到其他网站
这个问题有0个答案
推荐的帖子