SQL注入之less-1
Posted WEB安全之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL注入之less-1相关的知识,希望对你有一定的参考价值。
SQL注入攻击的总体思路
1.寻找到SQL注入的位置
2.判断服务器类型和后台数据库类型
3.针对不通的服务器和数据库特点进行SQL注入攻击
学习 SQL 注入,首先要搭一个靶机环境,我使用的是Sqli-labs, 进入到less-1开始我们的SQL注入学习之旅。
通过改变http://127.0.0.1/sqli-labs-master/Less-1/?id=2的id的值,页面上呈现不同的内容(username,password)。可以猜测在后台中的SQL语句就是根据前台传入的id值来去对应的数据。
SQL语句的写法为:
判断存在SQL语句
这个时候页面没有任何的变化,这是不和符合我们预期的结果,因为当id=3 and 1=2
时,SQL语句变为select username,password from table where id=3 and 1=2
页面应该不会有内容。
确定存在SQL语句
如下
当URl是以上的SQL语句时,页面上显示SQL执行错误信息
其中最关键的错误信息是:
''2''LIMIT 0,1'
最外层的引号是mysql出错时自动加上的。那么实际的SQL语句是 '2'' LIMIT 0,1
。我们发现在我们输入的2'被引号包围了,那么我们之前猜测的selectusername,password from table where id=input
有误,实际的后台的SQL语句应该为:
SQL注入验证
在确定存在了SQL注入之后,同时知道了后台SQL写法,那么此时我们就可以注入自己的SQL注入的代码。
由于我们可以控制id的值,那么最终输入的SQL语句会变为:
此时我们就可以构造如下的payload来验证我们的想法。由于我们的输入是被一对单引号包裹的,所以我们输入的语句必须要能够不被单引号影响。要么闭合单引号,要么注释掉单引号。(可以参考前面的)
SQL注入的判断没有万能方法,只有不断的进行尝试练习.......
以上是关于SQL注入之less-1的主要内容,如果未能解决你的问题,请参考以下文章
sqlilabs(SQL注入)小白通基础通关笔记(专针对小白)(第一关Less-1)
以下代码片段是不是容易受到 Rails 5 中 SQL 注入的影响?
sql-labs SQL注入平台-第1关Less-1 GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入)
sql-labs SQL注入平台-第1关Less-1 GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入)