学校网站建设 分工,如何提升网站转化率,wordpress黑糖主题破解,wordpress首页修改文章目录SQL 注入sql注入的原理#xff1f;如何通过SQL注入判断对方数据库类型#xff1f;补充一下其他方法判断数据库类型时间盲注的函数XPath注入抓不到http/https包#xff0c;怎么办#xff1f;app无自己的ssl证书app有自己的ssl证书-证书绑定(SSL pinning)逻辑漏洞有哪…
文章目录SQL 注入sql注入的原理如何通过SQL注入判断对方数据库类型补充一下其他方法判断数据库类型时间盲注的函数XPath注入抓不到http/https包怎么办app无自己的ssl证书app有自己的ssl证书-证书绑定(SSL pinning)逻辑漏洞有哪些身份验证漏洞权限类逻辑漏洞其他类型逻辑漏洞XSS绕过方式常规插入及其绕过规则探测及绕过SSRF协议有哪些XXE有了解吗域渗透中堡垒机渗透(绕过)绕过ACL策略通过堡垒机跳转绕过其它绕过场景Fastjsonfastjson反序列化漏洞Spring 漏洞你知道那些黄金票据与白银票据域前置总结参考昨天的面试忘记记录了趁着还有些记忆特此把自己比较薄弱的知识点整理一下很多东西答的比较口语化没来得及背面试题emm吃一点长一智吧……SQL 注入
sql注入类型 Boolean-based blind SQL injection布尔型注入 Error-based SQL injection报错型注入 UNION query SQL injection可联合查询注入 Stacked queries SQL injection可多语句查询注入 Time-based blind SQL injection基于时间延迟注入 sql注入的原理
产生sql注入的根本原因在于代码中没有对用户输入项进行验证和处理便直接拼接到查询语句中。利用sql注入漏洞攻击者可以在应用的查询语句中插入自己的SQL代码并传递给后台SQL服务器时加以解析并执行。
如何通过SQL注入判断对方数据库类型
这个是真没答上来啊下面是在网上收集的答案 1、数据库特有连接符判断
id1 and ‘1’’1’’11’ #MySQL或者是MSSQL
id1 and concat(‘1’,’1’)’11’ #MySQL或者Oracle
id1 and ‘1’||’1’’11’ #OracleMySQL和Oracle使用concat函数进行字符串拼接而MSSQL和Oracle使用‘’运算符进行字符串拼接。使用这些语句用来判断正在运行的数据库类型。
2、特有数据表判断
id1 and (select count(*) from sys.user_tables)0 and 11 #Oracle
id1 and (select count(*) from information_schema.TABLES)0 and 11 #MySQL5.0以上
id1 and (select count(*) from sysobjects)0 and 11 #MSSQL
id1 and (select count(*) from msysobjects)0 and 11 #access数据库不同数据库含有特定的表或对象并在任何情况下返回true值。Oracle使用sys.user_tables而MySQL使用information_schema.TABLESMSSQL使用sysobjectsAccess使用msysobjects这些都是元数据表或对象的名称。通过注入这样的语句并观察其响应攻击者可以了解目标网站使用哪种类型的数据库系统。 3、特定函数判断 len和length len()SQL Server 、MySQL以及db2返回长度的函数。 length()Oracle和INFORMIX返回长度的函数。
version和version version()MySQL查询版本信息的函数 versionMySQL和SQL Server查询版本信息的函数
substring和substr MySQL两个函数都可以使用 Oracle只可调用substr SQL Server只可调用substring 4、特殊符号进行判断 /*是MySQL数据库的注释符 –是Oracle和SQL Server支持的注释符 ;是子句查询标识符Oracle不支持多行查询若返回错误则说明可能是Oracle数据库 #是MySQL中的注释符返回错误则说明可能不是MySQL另外也支持-- 和/**/
5、根据盲注特别函数判断 MYSQL
BENCHMARK(1000000,ENCODE(QWE,ASD))
SLEEP(5)PostgreSQL
PG_SLEEP(5)
GENERATE_SERIES(1,1000000)SQL Server
WAITFOR DELAY 0:0:56、通过报错提示内容判断 在注入点后直接加上单引号根据服务器的报错信息来判断数据库。 错误提示Microsoft JET Database Engine 错误 ‘80040e14’说明是通过JET引擎连接数据库则表明数据库为ACCESS数据库如果是ODBC的话则说明是MSSQL数据库。
补充一下其他方法判断数据库类型
1、根据开发语言判断数据库类型
aspSQL ServerAccess
.netSQL Server
phpMySQLPostgreSQL
javaOracleMySQL2、端口判断 关系型数据库 Oracle数据库默认端口号为1521 MySQL数据库默认端口号为3306 SQLServer数据库默认端口号为1433; postgreSQL数据库默认端口号为5432;
NOSQL数据库 MongoDB默认端口号为27017 Redis默认端口号为6379 memcached默认端口号为11211
时间盲注的函数
我好像就说了一个sleep() emmm 1、原理 由于服务器端拼接了SQL语句且正确和错误存在同样的回显即是错误信息被过滤可以通过页面响应时间进行按位判断数据。由于时间盲注中的函数是在数据库中执行的但是sleep函数或者benchmark函数的过多执行会让服务器负载过高 2、还有一个benchmark函数
XPath注入
1、原理 XPath注入是一种Web应用程序攻击方式类似于SQL注入。攻击者可以利用XPath语言的强大功能向Web应用程序发送恶意负载以获取未经授权的信息或执行未经授权的操作。 攻击者可以在表单字段、URL参数和HTTP头中注入恶意XPath表达式。这些表达式可以被解释为查询XML文档中的节点或属性。如果Web应用程序没有正确地过滤输入数据攻击者就可以将XPath注入负载嵌入到查询中并从XML文档中检索敏感 2、利用 以一个普通实例来说//users/user[username/text() ’ ’ or ‘1’ or ‘1’ and password/text()‘’], 这个字符串会在逻辑上使查询一直返回 true 并将一直允许攻击者访问系统。攻击者可以利用 XPath 在应用程序中动态地操作 XML 文档。攻击完成登录可以再通过XPath盲入技术获取最高权限账号和其它重要文档信息。延展开来xpath的注入还有很多花样像是通过updataxml()函数实现xpath报错注入还有xpath的盲注。
抓不到http/https包怎么办
还能怎么办平时这种带防护的小程序或app直接放弃了啊提问的目的应该是让我说出绕过的方法
不会是导出ssl证书这么简单吧这点我还忘了说了 以下是找到的相关抓包方法
app无自己的ssl证书
有的app由于资金有限所以不会去申请自己的ssl证书就直接使用和浏览器一样的ssl证书这个我们直接在安卓模拟器安装burp的ssl证书就能绕过
app有自己的ssl证书-证书绑定(SSL pinning) SSL Pinning是一种安全机制用于确保移动应用程序与特定服务器建立的SSL连接始终是安全的。它通过比较服务器的公钥指纹是否与预定义的指纹匹配来实现这一目的。在SSL Pinning中应用程序会存储预先定义的服务器证书或公钥指纹并在建立SSL连接时强制要求服务器提供匹配的证书或公钥指纹以确保通信的安全性。这样可以有效地防止基于中间人攻击Man-in-the-middle attack的安全威胁。 证书绑定又叫单向认证app不使用公开的ssl证书了花钱去找证书颁发机构去买一个属于自己的证书并且自己设置了一个通信的密钥密码
Burp是抓应用层的包不会抓其他层的包由于burp没安装专属于这个app的ssl证书burp抓到的是乱码的数据无法识别出是http的请求burp会默认他为其他层的数据包就不去抓这个包导致无法抓包
绕过方法 1、把App里面的证书揪出来app和抓包软件的通信用那个证书。 2、删除掉App里面单向认证的代码让他能使用系统证书然后他和抓包软件就能通信了。 揪证书需要逆向很难第二种可以使用工具进行hook类似于断点处理 在已经安装好证书和ypn的情况下操作
使用工具hook有两种方法 1、 Xposed框架中的JustTrustMe JustTrustMe在测试的时候会自动对app所有具有单向认证的地方进行hook 2、 objection绕过单向认证
逻辑漏洞有哪些
身份验证漏洞
暴力破解漏洞 可以针对用户名进行错误次数计算高于一定阈值账号锁定一段时间或者添加验证码 但是不能永久锁定可能被用来进行账户恶意锁定 Session固定攻击 Cookie欺骗漏洞 漏洞介绍通过伪造cookie信息能够伪造其他用户进行登录。 漏洞原理开发者为了方便将身份信息/登录信息明文或者只是简单编码、哈希之后存放在cookies中网站通过获取得到的cookies进行授权或者身份验证 漏洞点cookie中有明显或者只是简单编码、哈希的字段时候 修改lsLogin值为1可以判定为用户已经登录 漏洞修复 Cookie不应该存储可理解的身份信息和登录信息cookie对身份信息和登录信息的存储只能通过存储足够长度的随机字符串进行避免篡改
权限类逻辑漏洞
平行权限跨越 垂直权限跨越 未经授权访问
图形验证码漏洞 找回密码逻辑漏洞 业务数据篡改漏洞 执行顺序逻辑漏洞
其他类型逻辑漏洞
条件竞争漏洞 数据包重放漏洞
XSS绕过方式
常规插入及其绕过
Script 标签 绕过进行一次移除操作
scrscriptiptalert(XSS)/scrscriptiptScript 标签可以用于定义一个行内的脚本或者从其他地方加载脚本 JavaScript 事件 我们可以像如下这样在元素中定义 JavaScript 事件
div οnclickalert(xss)绝大部分的事件都被过滤器所移除了但是依旧还有少量事件没有被过滤
divοnmοuseenteralert(xss)当用户鼠标移动到 div 上时就会触发我们的代码。另一个绕过的办法就是在属性和 之间插入一个空格
div onclick alert(xss)行内样式(Inlinestyle) 利用字符编码
%c1;alert(/xss/);//绕过长度限制
οnclickalert(1)//
!--
--scriptalert(xss);script过滤空格 策略/**/注释符号绕过/符号绕过
例img/src/onerroralert(1)规则探测及绕过
WAF规则探测 使用无害的payload类似,,观察响应判断应用程序是否被HTML编码是否标签被过滤是否过滤等等 如果过滤闭合标签尝试无闭合标签的payloadb,i,marquee观察响应 尝试以下的payload
scriptalert(1);/script
scriptprompt(1);/script
scriptconfirm (1);/script
scriptsrchttp://rhainfosec.com/evil.js大小写混合字符
SSRF协议有哪些
http://探测内网主机存活、端口开放情况 gopher://发送GET或POST请求攻击内网应用如FastCGI、Redis dict://泄露安装软件版本信息查看端口操作内网redis访问等 file://读取本地文件
XXE有了解吗
原理: 解析用户传入的xml 作用: 内网端口扫描、利用file协议等读取文件、攻击内网web应用使用get(struts2等)
危害
1.导致可以加载恶意外部文件
2.造成文件读取
3.内网端口扫描
4.攻击内网网站
5.发起dos攻击等危害防御: 过滤用户提交的XML数据、如果你当前使用的程序为PHP则可以将 libxml_disable_entity_loader设置为TRUE来禁用外部实体从而起到防御的目的
域渗透中堡垒机渗透(绕过)
关于堡垒机我之前就复现过一个JumpServer RCE https://blog.csdn.net/weixin_53009585/article/details/129001750 堡垒机运维审计系统
绕过ACL策略
服务器区防火墙或者交换机上没有做ACL以及当ACL策略做的细粒度不够导致用户区PC可以直接绕过堡垒机,直接远程服务器
通过堡垒机跳转绕过
另外一种场景就是先通过堡垒机访问A服务器然后再在A服务器上去访问B服务器这样就绕过了堡垒机间接访问了B服务器
其它绕过场景
1、目标服务器远程端口受到ACL限制但其他端口没有限制那么最简单的解决方式就可以通过端口转发来绕过 2、甚至如果服务器可以访问外网可以直接通过向日葵todeskTeamviewer进行远程这样就完全绕开了堡垒机审计 需要对服务器网段封禁向日葵 Teamviewer等远程工具 这种方式就不详细展开描述了
Fastjson
这里也是没怎么学
fastjson反序列化漏洞
正常请求是get请求并且没有请求体可以通过构造错误的post请求即可查看在返回包中是否有fastjson该字符串来判断 漏洞利用原理 在请求包里面中发送恶意的json格式payload漏洞在处理json对象的时候没有对type字段进行过滤从而导致可以传入恶意的TemplatesImpl类二这个类有一个字段就是_bytecodes有部分函数会根据_byteencodes生成java实例这就达到fastjson通过字段传入一个类再通过这个类被生成时执行构造函数 无回显怎么办 1、一种是直接将命令执行结果写入到静态资源文件中如html、js等然后通过http访问就可以直接看到结果 2、通过dnslog进行数据外带但如果无法执行dns就无法验证了 3、直接将命令执行结果回显到请求POC的http响应中
Spring 漏洞你知道那些
这里还是了解的不多问到了才尴尬啊 CVE-2010-1622 Spring Framework class.classLoader 类远程代码执行 CVE-2013-4152 Spring Framework 中的 XML 外部实体XXE注入 CVE-2014-3527 Spring Security 验证绕过漏洞 CVE-2014-3578 Spring Framework 目录遍历漏洞 CVE-2016-6652 Spring Data JPA SQL 盲注 CVE-2018-1271 Spring MVC 目录穿越漏洞 CVE-2020-5405 Spring Cloud Config路径穿越导致的信息泄露 …… 这么多我就回答一个敏感信息泄露
黄金票据与白银票据
这是刚学到啊今天就学ing
域前置
还没学到啊emmm
总结
面试整体围绕简历上内容来提问因为实习岗所以问的难度比较浅但是范围还是蛮广的通过面试来检测自己当前学习的状况还是挺不错的
参考
https://www.cnblogs.com/Fluorescence-tjy/p/10400588.html https://www.freebuf.com/articles/endpoint/359208.html https://cloud.tencent.com/developer/article/1906218 https://blog.csdn.net/m0_38103658/article/details/105481323