通过sqli-labs学习sql注入——基础挑战之less1

前言:     

      之前只是简单了解过SQL注入,只仅仅局限于会使用sqlmap等注入工具,但是手工注入方面就懂的很少了,所以准备通过sqli-lab这个注入平台的学习好好研究下常见的手工注入方面的知识

环境准备:

     Phpstudy (PHP+Apache+Mysql)

     Sql-lab

首先了解下基础知识:

URL编码:

      因为在浏览器中,当我们访问一个网址的时候,浏览器会自动将用户输入的网址进行URL编码,因为Http协议中参数的传输是"key=value"这种键值对形式的,所以会将“=”,“#”等字常见的字符进行URL编码。等号的URL编码为%23,空格是%20,单引号是%27, 井号是%23,双引号是%22等,(详情可参考http://www.w3school.com.cn/tags/html_ref_urlencode.html)

因为涉及到Mysql数据库,在插入数据库语句时会用到Mysql数据库的注释符

MySQL支持三种注释方式:

      1.从‘#'字符从行尾。

      2.从‘-- '序列到行尾。请注意‘-- '(双破折号)注释风格要求第2个破折号后面至少跟一个空格符(例如空格、tab、换行符(用%20或者+表示空格)等等)。

      3.从/*序列到后面的*/序列。结束序列不一定在同一行中,因此该语法允许注释跨越多行。

了解SQL手工注入的基本流程:

1、首先判断是什么类型的注入,有没过滤了关键字,能不能通过加入注释符绕过

2、接着获取当前数据库用户,版本,当前连接的数据库等信息。

3、然后一般是获取用户账户密码的那个数据库表的信息

4、接着获取列信息

5、最后就获取数据了

为了方便学习查看,可以在源码中的$sql下一句语句写以下php语句(就是输出拿到数据库查询的完整语句是怎么样的)

echo "你的 sql 语句是:".$sql."<br>";

image

猜你喜欢

转载自www.cnblogs.com/wuyuan99/p/10233576.html
今日推荐