问题描述:使用python sqlmap 检测存在sql注入风险,网站为php语言

操作步骤:1.本地电脑系统是win 7,查看未安装python,需要先安装python,注:win 7安装python3.8 ,过高版本系统不支持

搜索下载python-3.8.10-amd64.exe安装包,也可以登录python官网下载:https://www.python.org/downloads/windows/,下载后点击python-3.8.10-amd64.exe,出现下图安装界面,按图示勾选进行安装,第二红框第二复选框为增加path环境变量,方便后续操作。

自定义安装目录,文件夹中不要含文字空格,选择好路径,点击Install安装,等待进度条结束,出现安装成功页面:

安装完成后,打开本地电脑cmd命令窗口,输入python,出现如下图所示表示python安装成功。

 2.安装sqlmap

2.1.下载sqlmap:http://sqlmap.org/

2.2. 将下载的SQLMAP安装包解压到文件夹sqlmap中,并复制到python的根目录下;

2.3.cmd命令进入sqlmap目录下,输入python sqlmap.py -h,出现如下信息则表示安装成功

2.4.sqlmap常用注入:

python sqlmap.py -u 地址 可以查看是否能对当前URL进行注入
python sqlmap.py -u 地址 -v 1 --dbs // 列举数据库列表
python sqlmap.py -u 地址 -v 1 --current-db// 显示当前数据库
python sqlmap.py -u 地址 -v 1 --users // 列举所有数据库用户
python sqlmap.py -u 地址 -v 1 --current-user // 显示当前用户
python sqlmap.py -u 地址 -v 1 -D "database_name" --tables // 列举databas的所有表
python sqlmap.py -u 地址 -v 1 -D "database_name" -T "table_name" --columns // 列举所有字段
python sqlmap.py -u 地址 -v 1 -D "database_name" -T "table_name" -C"columns1,columns2" –dump //导出相关字段
而且SQLMAP会将数据存储在sqlmap/output/

执行命令后出现如下图所示,表明找到注入点:

 2.5.php站点按如下步骤开启sql防护:

(1)过滤一些常见的数据库操作关键字,例如对select ,insert,update,delete,and,*,(,),'等敏感字符或通过系统函数addslashes对内容进行过滤。

(2)php配置文件php.ini中register_globals=off;display_error=off,debug设置为false

(3)开启PHP安全模式safe_mode=on

(4)打开magic_quotes_gpc来防止SQL注入,默认为关闭,开启后自动把用户提交sql查询语句进行转换把"'"转换成"\'"

(5)网站安装waf防护软件

2.6.安装过滤拦截后再次执行上述同样命令出现如下图所示,已经无法扫描到注入点:

python sqlmap 检测sql注入点及php网站sql注入防护运维操作实例的更多相关文章

  1. 寻找SQL注入点

    如果要对一个网站进行SQL注入攻击,首先就需要找到存在SQL注入漏洞的地方,也就是寻找所谓的注入点.可能的SQL注入点一般存在于登录页面.查找页面或添加页面等用户可以查找或修改数据的地方. 最常用的寻 ...

  2. 转:python常用运维脚本实例

    python常用运维脚本实例 转载  file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函 ...

  3. python常用运维脚本实例【转】

    file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函数open()来打开一个文件 . 首先 ...

  4. BurpSuite导出log配合SQLMAP批量扫描注入点

    sqlmap可以批量扫描包含有request的日志文件,而request日志文件可以通过burpsuite来获取, 因此通过sqlmap结合burpsuite工具,可以更加高效的对应用程序是否存在SQ ...

  5. python常用运维脚本实例

    转载  file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函数open()来打开一个文件 ...

  6. Python运维编程

    Python运维编程 作者:Danbo  2015-10-11 什么是Python,为什么要使用Python? 这个大家自行谷歌,不过看看知乎你就知道Python有多么强大:http://www.zh ...

  7. sqlmap检测sql注入漏洞

    sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞.它由python语言开发而成,因此运行需要安装python环境. 官网:http://sqlmap.org/ 乌 ...

  8. Web安全0001 - MySQL SQL注入 - 如何寻找注入点

    注:本文是学习网易Web安全进阶课的笔记,特此声明. 其他数据库也可以参考寻找注入点. A: 一.信息搜集(百度) 1.无特定目标 inurl:.php?id= 2.有特定目标 inurl:.php? ...

  9. Sqlmap注入Base64编码的注入点

    不小心删了,找快照才找到的.补回来... 上次遇到一个Base64的注入点,手工注入太麻烦,于是在网上看了一下sqlmap Base64注入的方法,如下: sqlmap -u http://xxxx. ...

  10. SQL注入篇二------利用burp盲注,post注入,http头注入,利用burpsuit找注入点,宽字节注入

    1.布尔盲注burpsuit的使用 先自己构造好注入语句,利用burpsuit抓包,设置变量,查出想要的信息. 比如----查数据库名的ascii码得到数据库构造好语句 http://123.206. ...

随机推荐

  1. 使用OpenSSL创建生成CA证书、服务器、客户端证书及密钥

    说明: 对于SSL单向认证:服务器需要CA证书.server证书.server私钥,客户端需要CA证. 对于SSL双向认证:服务器需要CA证书.server证书.server私钥,客户端需要CA证书, ...

  2. localhost 宿主机访问

    ssh -N -f -L localhost8888:localhost:8888 hostname

  3. @Builder 注解的简单使用

    1.导语(可跳过) Java小白一枚,研读公司代码.发现实体类上加了@Builder.@NoArgsConstructor和@AllArgsConstructor.话不多说,上代码 2.实体类代码@D ...

  4. IM消息ID技术专题(七):深度解密vivo的自研分布式ID服务(鲁班)

    本文由vivo互联网技术An Peng分享,本文收录时有内容修订和重新排版. 1.引言 本文通过对分布式ID的3种应用场景.实现难点以及9种分布式ID的实现方式进行介绍,并对结合vivo业务场景特性下 ...

  5. JVM实战—9.线上FGC的几种案例

    大纲 1.如何优化每秒十万QPS的社交APP的JVM性能(增加S区大小 + 优化内存碎片) 2.如何对垂直电商APP后台系统的FGC进行深度优化(定制JVM参数模版) 3.不合理设置JVM参数可能导致 ...

  6. Uniapp仿ChatGPT Stream流式输出(非Websocket)

    前言 最近写一个chagpt小程序,流式输出可以使用websocket也可以使用stream来实现,这里就不折腾websocket的了,我发现uniapp实现流式输出的方式挺多的,主要是有些小程序还不 ...

  7. 记一次cannot access its superinterface问题的的排查 → 强如Spring也一样写Bug

    开心一刻 昨天在幼儿园,领着儿子在办公室跟他班主任聊他的情况 班主任:皓瑟,你跟我聊天是不是紧张呀 儿子:是的,老师 班主任:不用紧张,我虽然是你的班主任,但我也才22岁,你就把我当成班上的女同学 班 ...

  8. java解析CSV文件三种方法(openCSV)

    一.简介1.pom.xml<!-- csv文件解析依赖 --><dependency> <groupId>com.opencsv</groupId> & ...

  9. TbSchedule任务调度管理框架的整合部署

    一.前言 任务调度管理作为基础架构通常会出现于我们的业务系统中,目的是让各种任务能够按计划有序执行.比如定时给用户发送邮件.将数据表中的数据同步到另一个数据表都是一个任务,这些相对耗时的操作通过任务调 ...

  10. w3cschool-Hibernate 教程

    什么是 ORM? ORM 表示 Object-Relational Mapping (ORM),是一个方便在关系数据库和类似于 Java, C# 等面向对象的编程语言中转换数据的技术.一个 ORM 系 ...