python sqlmap 检测sql注入点及php网站sql注入防护运维操作实例

发布时间 2023-06-09 16:12:14作者: 没用的阿吉是剑神

问题描述:使用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.安装过滤拦截后再次执行上述同样命令出现如下图所示,已经无法扫描到注入点: