河南建设监理协会网站6,医院美容网站建设,做网站工作室,上海注销公司需要什么资料和流程点击星标#xff0c;即时接收最新推文 本文选自《web安全攻防渗透测试实战指南#xff08;第2版#xff09;》 五折购买链接#xff1a;u.jd.com/3ibjeF6 SQLMap详解 SQLMap是一个自动化的SQL注入工具#xff0c;其主要功能是扫描、发现并利用给定URL的SQL注入漏洞。SQLMa… 点击星标即时接收最新推文 本文选自《web安全攻防渗透测试实战指南第2版》 五折购买链接u.jd.com/3ibjeF6 SQLMap详解 SQLMap是一个自动化的SQL注入工具其主要功能是扫描、发现并利用给定URL的SQL注入漏洞。SQLMap内置了很多绕过插件支持的数据库是MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB。SQLMap采用了以下五种独特的SQL注入技术。 1基于布尔类型的盲注即可以根据返回页面判断条件真假的注入。 2基于时间的盲注即不能根据页面返回的内容判断任何信息要通过条件语句查看时间延迟语句是否已执行即页面返回时间是否增加来判断。 3基于报错注入即页面会返回错误信息或者把注入的语句的结果直接返回页面中。 4联合查询注入在可以使用Union的情况下的注入。 5堆查询注入可以同时执行多条语句的注入。 SQLMap的强大功能包括数据库指纹识别、数据库枚举、数据提取、访问目标文件系统并在获取完全的操作权限时执行任意命令。SQLMap的功能强大到让人惊叹当常规的注入工具不能利用SQL注入漏洞进行注入时使用SQLMap会有意想不到的效果。 SQLMap的安装 SQLMap的安装需要Python环境支持Python 2.6、Python 2.7、Python 3.x本节使用的是Python 3可在官网下载安装包并一键安装安装完成后复制Python的安装目录添加到环境变量值中或者在安装时勾选“Add Python to environment variables”选项自动将Python加入环境变量如图3-1所示。 图3-1 从SQLMap官网下载最新版的SQLMap打开cmd输入命令“python sqlmap.py”工具即可正常运行如图3-2所示。 图3-2 SQLMap入门 1判断是否存在注入 假设目标注入点是http://10.211.55.6/Less-1/?id1用如下命令判断其是否存在注入 python sqlmap.py -u http://10.211.55.6/Less-1/?id1 结果显示存在注入如图3-3所示。 图3-3 注意当注入点后面的参数大于等于两个时需要加双引号命令如下 python sqlmap.py -u http://10.211.55.6/Less-1/?id1uid2 运行上述命令后Terminal终端上会“爆出”一大段信息如图3-4所示。信息中有三处需要选择的地方第一处的意思为检测到数据库可能是MySQL是否跳过并检测其他数据库第二处的意思是在“level1、risk1”的情况下是否使用MySQL对应的所有Payload进行检测第三处的意思是参数ID存在漏洞是否继续检测其他参数一般默认按回车键即可继续检测。 图3-4 2判断文本中的请求是否存在注入 从文件中加载HTTP请求SQLMap可以从一个.txt文件中获取HTTP请求这样就可以不设置其他参数如Cookie、POST数据等。.txt文件中的内容为Web数据包如图3-5所示。 图3-5 运行如下命令判断是否存在注入 python sqlmap.py –r 1.txt 运行后的结果如图3-6所示参数“-r ”一般在存在Cookie注入时使用。 图3-6 3查询当前用户下的所有数据库 该命令是确定网站存在注入后用于查询当前用户下的所有数据库命令如下 python sqlmap.py -u http://10.211.55.6/Less-1/?id1 --dbs 如果当前用户有权限读取包含所有数据库列表信息的表则使用该命令即可列出所有数据库如图3-7所示。 图3-7 从图3-7中可以看到查询出了5个数据库。 继续注入时将参数“--dbs”缩写成“-D xxx”意思是在xxx数据库中继续查询其他数据。 4获取数据库中的表名 该命令的作用是在查询完数据库后查询指定数据库中所有的表名命令如下 python sqlmap.py -u http://10.211.55.6/Less-1/?id1 -D security --tables 如果不在该命令中加入参数“-D”来指定某一个具体的数据库则SQLMap会列出数据库中所有库的表如图3-8所示。 图3-8 从图3-8中可以看出security数据库拥有的4个表名。继续注入时将参数“--tables”缩写成“-T”意思是在某个表中继续查询。 5获取表中的字段名 该命令的作用是在查询完表名后查询该表中所有的字段名命令如下 python sqlmap.py -u http://10.211.55.6/Less-1/?id1 -D security -T users --columns 该命令的运行结果如图3-9所示。 图3-9 从图3-9中可以看出security数据库中的users表中一共有3个字段。在后续的注入中将参数“--columns”缩写成“-C”意思是获取指定列的数据。 6获取字段内容 该命令的作用是在查询完字段名之后获取该字段中具体的数据信息命令如下 python sqlmap.py –u http://10.211.55.6/Less-1/?id1 –D security –T users –C username,password --dump 这里需要下载的数据是security数据库里users表中username和password的值如图3-10所示。 图3-10 7获取数据库的所有用户 该命令的作用是列出数据库的所有用户。在当前用户有权限读取包含所有用户的表时使用该命令就可以列出所有管理用户命令如下 python sqlmap.py –u http://10.211.55.6/Less-1/?id1 --users 可以看出当前用户账号是root如图3-11所示。 图3-11 8获取数据库用户的密码 该命令的作用是列出数据库用户的密码。如果当前用户有读取用户密码的权限则SQLMap会先列举出用户然后列出Hash并尝试破解命令如下 python sqlmap.py –u http://10.211.55.6/Less-1/?id1 --passwords 从图3-12中可以看出密码采用MySQL 5加密方式可以在解密网站中自行解密。 图3-12 9获取当前网站数据库的名称 使用该命令可以列出当前网站使用的数据库命令如下 python sqlmap.py –u http://10.211.55.6/Less-1/?id1 --current-db 从图3-13中可以看出数据库是security。 图3-13 10获取当前网站数据库的用户名称 使用该命令可以列出当前使用网站数据库的用户命令如下 python sqlmap.py –u http://10.211.55.6/Less-1/?id1 --current-user 从图3-14中可以看出用户是root。 图3-14 — 实验室旗下直播培训课程 — 和20000位同学加入MS08067一起学习