网站优化过程中如何查询网站是否被入侵
搜外网告诉你网站优化过程中如何查询网站是否被入侵:
1、通过site顶级域名,在百度、搜狗、360浏览器中,看有没有收录与我们网站内容无关的文章;也可以利用site:网址+灰色关键词,看有没有被注入垃圾页面被搜索引擎收录,因为凡是被注入的页面他们都通过大量链接进行轮链,收录都是非常快的。
2、通过查看日志文件,看蜘蛛抓取不常见的文件,例如我们程序是php的,就看是否抓取过.asp等其它程序语言脚本的文件,如果有就打开访问试试看是什么情况。
3、通过ftp工具或者登陆vps服务器,看网站根目录文件里面的文件名,有没有异常,观察是否有大小写混合的目录,如果有查看是否被注入。
4、通过检查首页、频道页、列表页、文章页、单页面死链接、导出链接,看是否有没挂黑链,因为许多网站都是通过cms搭建的,都是公用一个模板。
5、检查网站首页、频道、列表、文章、单页面调用的js文件,访问js文件,看里面是否有除了我们网址以外其它的绝对地址。
6、使用官方挂马清除工具,查看是否有异常文件,具体了解,查看。
7、可以服务器里面的安全狗软件,进行敏感文件查找。
8、查看根目录文件夹,一个个打开点击看是否有异常文件,因为cms搭建的网站,基本上命名都是有规律可寻的。
9、删除网站里面无用程序页面,及时打补丁,给程序文件进行一定的权限设置。
web日志分析工具 怎么确认被攻击
Apache 服务器
预安装在Kali Linux
可以用以下命令开启:
service apache2 start
MySQL
预安装在Kali Linux
可以用以下命令开启:
service mysql start
使用PHP-MySQL创建一个有漏洞的web应用
我使用PHP开发了一个有漏洞的web应用并且把它放在上面提到的 Apache-MySQL里面。
上述设置完成后,我用了一些Kali Linux中的自动工具(ZAP、w3af)扫描这个有漏洞的应用的URL。
现在让我们来看看分析日志中的不同情况。
0x02 Apache服务中的日志记录
Debian系统上Apache服务器日志的默认位置为:/var/log/apache2/access.log
日志记录只是在服务器上存储日志。我还需要分析日志以得出正确结果。在接下来的一节里,我们将看到我们如何分析Apache服务器的访问日志以找出web站点上是否有攻击尝试。
分析日志
手动检查
在日志量较小的情况下,或者如果我们查找一个指定关键词,可以使用像grep表达式这样的工具观察日志。
在下图中,我们在URL中试图搜寻所有关键词为“union”的请求。
从上图中,我们可以看到URL中的“union select 1,2,3,4,5”请求。很明显,ip地址为 192.168.56.105的某人尝试了SQL注入。 类似地,当我们有自己的关键词时可以搜索特殊的关键词。
在下图中,我们正在搜索试图读取“/etc/passwd”的请求,很明显是本地文件包含尝试。
如上面的截图所示,我们有许多本地文件包含的尝试,且这些请求发送自ip地址 127.0.0.1。
很多时候,能轻易通过日志看出是否是自动化扫描器产生的。
举例来说, IBM appscan在许多攻击payload中使用“appscan”这个词。所以,在日志中查看这样的请求,我们基本就可以判断有人在使用appscan扫描网站。
Microsoft Excel也是一个打开日志文件和分析日志的不错的工具。我们可以通过指定“空格”为分隔符以用excel打开日志文件。
当我们手头没有日志分析工具时,这个也挺好用的。
除了这些关键词,在分析期间要了解HTTP状态代码的基础知识。以下是关于HTTP状态代码的高级信息的表格。
0x03 Web shells
webshell是网站/服务器的另一个问题。webshell可以已web server权限控制服务器。
在一些情况下,我们可以使用webshell来访问所有放在相同服务器上的其他站点。
以下截图显示了Microsoft Excel 中开启相同的access.log文件。
我们清楚地看到有一个叫“b374k.php”的文件被访问了。“b374k”是一个流行的webshell,因此这个文件是很可疑的。
查看相应代码“200”,本行表明有人上传了一个webshell并访问了它。
在许多情况下,攻击者重命名webshell的名字以避免怀疑。我们必须变得聪明点,看看被访问的文件是否是常规文件或者是否他们看起来不太一样。我们可以更进一步,如果任何文件看起来可疑的话,还可以查看文件类型和时间戳。
One single quote for the win
SQL注入是web应用中最常见的漏洞之一。大多数学习web应用安全的人是从学习SQL注入开始的。
识别一个传统的SQL注入很容易,给URL参数添加一个单引号看看是否报错。
任何我们传递给服务器的东西都会被记录,并且可以朔源。
以下截图显示了日志当中记录了有对参数user传入单引号测试是否有SQL注入的行为。
%27是单引号的URL编码。
出于管理目的,我们还可以运行查询监视来查看数据库中的哪个请求被执行了。
如果我们观察以上图片,传递一个单引号给参数“user”的SQL语句被执行了。
0x04 使用自动化工具分析
当存在大量日志时。手动检查就会变得困难。在这种情景下,除了一些手动检查之外我们可以使用自动化工具。
虽然有许多高效的商业工具,但是我要向你们介绍一款被称为“Scalp”的免费工具。
据他们的官方链接所说,Scalp是用于Apache服务器,旨在查找安全问题的日志分析器。主要理念是浏览大量日志文件并通过从HTTP/GET中提取可能的攻击。
Scalp可以从以下链接下载:
Scalp是python脚本,所以要求我们的机器中安装python。
以下图片显示该工具的帮助。
如我们在上图所见,我们需要使用标志-l来提供要分析的日志文件。
同时,我们需要提供使用标志-f提供一个过滤文件让Scalp在access.log文件中识别可能的攻击。
我们可以使用PHPIDS项目中的过滤器来检测任何恶意的尝试。
该文件名为“default_filter.xml ”,可以从以下链接中下载:
以下代码块是取自上面链接的一部分。
1
2
3
4
5
6
7
8
9
10
11
filter
id12/id
rule![CDATA[(?:etc\/\W*passwd)]]/rule
descriptionDetects etc/passwd inclusion attempts/description
tags
tagdt/tag
tagid/tag
taglfi/tag
/tags
impact5/impact
/filter
它是使用XML标签定义的规则集来检测不同的攻击测试。以上代码片段是检测文件包含攻击尝试的一个示例。
下载此文件之后,把它放入Scalp的同一文件夹下。
运行以下命令来使用Scalp分析日志。
1
python scalp-0.4.py –l /var/log/apache2/access.log –f filter.xml –o output –html
“output”是报告保存的目录。如果不存在的话,由Scalp自动创建。-html是用来生成HTML格式的报告。 如我们在上图看到的那样,Scalp结果表明它分析了4001行,超过4024并发现了296个攻击模式。
运行上述命令后在输出目录内生成报告。我们可以在浏览器内打开它并查看结果。 下面截图显示的输出显示了目录遍历攻击尝试的一小部分。
MySQL中的日志记录
本节论述了数据库中的攻击分析和监视它们的 *** 。
之一步是查看设置了什么变量。我们可以使用“show variables;”完成,如下所示。
接下来显示了上述命令的输出。
如我们在上图中看到的,日志记录已开启。该值默认为OFF。
这里另一个重要的记录是 “log_output”,这是说我们正在把结果写入到文件中。另外,我们也可以用表。
我们可以看见“log_slow_queries”为ON。默认值为OFF。
所有这些选项都有详细解释且可以在下面提供的MySQL文档链接里直接阅读:
MySQL的查询监控
请求日志记录从客户端处收到并执行的语句。默认记录是不开启的,因为比较损耗性能。
我们可以从MySQL终端中开启它们或者可以编辑MySQL配置文件,如下图所示。
我正在使用VIM编辑器打开位于/etc/mysql目录内的“my.cnf”文件。
如果我们向下滚动,可以看见日志正被写入一个称为“mysql.log”的文件内。
我们还能看到记录“log_slow_queries” ,是记录SQL语句执行花了很长时间的日志。
现在一切就绪。如果有人用恶意查询数据库,我们可以在这些日志中观察到。如下所示:
上图显示了查询命中了名为“webservice”的数据库并试图使用SQL注入绕过认证。
如何快速判断服务器是否遭受CC攻击?
CC攻击有一定的隐蔽性,那如何确定服务器正在遭受或者曾经遭受CC攻击呢?可以通过以下三个 *** 来确定。
1、命令行法
一般遭受CC攻击时,Web服务器会出现80端口对外关闭的现象,因为这个端口已经被大量的垃圾数据堵塞了正常的连接被中止了。可以通过在命令行下输入命令netstat-an来查看,SYN_RECEIVED是TCP连接状态标志,意思是正在处于连接的初始同步状态,表明无法建立握手应答处于等待状态。这就是攻击的特征,一般情况下这样的记录一般都会有很多条,表示来自不同的 *** IP的攻击。
2、批处理法
上述 *** 需要手工输入命令且如果Web服务器IP连接太多看起来比较费劲,可以建立一个批处理文件,通过该脚本代码确定是否存在CC攻击。
脚本筛选出当前所有的到80端口的连接。当感觉服务器异常时就可以双击运行该批处理文件,然后在打开的log.log文件中查看所有的连接。如果同一个IP有比较多的到服务器的连接,那就基本可以确定该IP正在对服务器进行CC攻击。
3、查看系统日志
web日志一般在C:\WINDOWS\system32\LogFiles\HTTPERR目录下,该目录下用类似httperr1.log的日志文件,这个文件就是记录Web访问错误的记录。管理员可以依据日志时间属性选择相应的日志打开进行分析是否Web被CC攻击了。
默认情况下,web日志记录的项并不是很多,可以通过IIs进行设置,让web日志记录更多的项以便进行安全分析。其操作步骤是:开始-管理工具打开Internet信息服务器,展开左侧的项定位到相应的Web站点,然后右键点击选择属性打开站点属性窗口,在网站选项卡下点击属性按钮,在日志记录属性窗口的高级选项卡下可以勾选相应的扩展属性,以便让Web日志进行记录。比如其中的发送的字节数、接收的字节数、所用时间这三项默认是没有选中的,但在记录判断CC攻击中是非常有用的,可以勾选。另外,如果你对安全的要求比较高,可以在常规选项卡下对新日志计划进行设置,让其每小时或者每一天进行记录。为了方便日后进行分析时好确定时间可以勾选文件命名和创建使用当地时间。
0条大神的评论