WEB漏洞—逻辑越权之登陆脆弱及支付篡改
登录应用功能点安全问题:检测功能点,检测,危害,修复方案等
登录点暴力破解
HTTP/HTTPS传输
Cookie脆弱点验证
Session固定点测试
验证密文比对安全测试
一般来说HTTP是以明文的方式进行传输,而HTTPS是用密文的方式进行传输,当然这个不是绝对的
这里这个就是http的,用的是明文传输
如果是https就是加密的,如下图
下图是小迪老师的个人博客,用的就是http的传输协议,但是对数据进行传输的时候却是加密的值
那么既然有了这个加密的问题,在进行爆破的时候就需要注意,如果你直接用没有进行相应加密过的字典,那么传输的数据都会报错,所以这里可以用两种方式:一种是burp自带的功能,还有一种是可以写一个脚本在进行报错之前先把这个字典进行相应的加密,然后在进行爆破。这里介绍使用burp自带的功能
熊海CMS案例说明
通关源代码分析,这里只要user不为空就可以了
这里需要注意的地方是要访问的地址是:http://192.168.88.154/xhcms/admin/?r=index,如果是直接抓取这 ...
WEB漏洞—SQL注入之oracle,MongoDB等注入
除了access数据库之外,其他的数据库注入的思路都是大差不差
常见数据库有:Access、mssql、mongoDB、postgresql、sqlite、oracle、sybase等
首先是上节课的补充
JSON在进行注入的时候的语法是如上图所示。
复习JSON12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091JSON 语法规则JSON 语法是 JavaScript 对象表示语法的子集。数据在名称/值对中数据由逗号分隔大括号 {} 保存对象中括号 [] 保存数组,数组可以包含多个对象JSON 名称/值对JSON 数据的书写格式是:key : value名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值 ...
WEB漏洞—查询方式及报错盲注当进行SQL注入时候,有很多注入会出现无回显的情况,其中不回显的原因可能是SQL语句查询方式的问题导致,这个时候我们需要用到相关的报错或者盲注进行后续操作。同时作为手工注入时,提前了解或预知其SQL语句大概写法也能更好的选择对应的注入语句
1234567891011121314151617181920212223242526272829常用sql语句select 查询数据在网站应用中进行数据显示查询效果例: select * from news wher id=$idinsert 插入数据在网站应用中进行用户注册添加等操作例:insert into news(id,url,text) values(2,‘x’,’$t’)delete 删除数据后台管理里面删除文章删除用户等操作例:delete from news where id=$idupdate 更新数据会员或后台中心数据同步或缓存等操作例:update user set pwd=’$p’ where id=2 and username=‘admin’order by 排列数据一般结合表名或列名进行数据 ...
WEB漏洞—SQL注入之二次,加解密,DNS等注入加解密加解密:网站在注入的时候,一些值被进行了加密,如果要进行正常的注入,那么也就需要用加密后的注入语句【这里必须是一样的加密方式,比如说如果是base64那么你也就要用base64的方式先将注入语句进行加密】,进行注入
二次注入
二次注入可以理解为,攻击者构造的恶意数据存储在数据库后,恶意数据被读取并进入到SQL查询语句所导致的注入。防御者即使对用户输入的恶意数据进行转义,当数据插入到数据库中时被处理的数据又被还原,Web程序调用存储在数据库中的恶意数据并执行SQL查询时,就发生了SQL二次注入。
也就是说一次攻击造成不了什么,但是两次配合起来就会早成注入漏洞。
用sqli-labs/Less24关来说明一下,就用小迪老师上课的操作:首先创建一个正常的用户,但是这个用户名是xxxx ‘ #的形式,然后密码随意,创建好之后,在去登陆,修改刚刚创建的用户的密码,改成123465789,这个时候神奇的事情发生了,修改的并不是xxxx ‘ #,而是原本存在于数据库中xxxx用户,那么为什么?看看源码!
可以看到如果是这样的写法,那 ...
WEB漏洞—SQL注入之堆叠及WAF绕过注入
堆叠注入查询
Stacked injections(堆叠注入)从名词的含义就可以看到应该是一堆SQL语句(多条一起执行)。而在真实的运用中也是这样的,我们知道在MySQL中,主要是命令行中,每一条语句结尾加一个【;】表示语句结束,这样我们想到了是不是可以多句一起使用,这个叫做Stacked injections
局限
1、堆叠注入需要后端API是否支持多语句执行,数据库引擎是否支持的限制,如果有一个不支持则无法使用
2、如果后端只返回一条数据则在前端是无法查看到第二条注入语句执行结果。
3、局限于部分数据库
4、使用堆叠注入前也需要知道数据表的信息
堆叠注入比UNION注入更加强大,不仅可以拼接查询语句也可以拼接更新/删除语句。
可以看到两个SQL语句一起写,然后两个语句的查询结果就也一起显示出来了。
有什么用处?
注入需要管理员账号密码,密码是加密的,而你无法解密,那么就可以用堆叠注入进行插入数据,用户密码是你自定义的,那么接下来就可以正常解密登陆的(而且可能由于是管理员的注入点,那么你创建的用户也有可 ...
搭建习惯——目录型站点
搭建习惯——端口类站点
搭建习惯——子域名站点
搭建习惯——类似域名站点
搭建习惯——旁注,C段站点
搭建习惯——搭建软件特征站点
目录型站点有的网站在搭建的时候,在这个网站的目录下,可能是一个新的站点,那么这个时候就提供了两种不同的思路,因为这个两个不同的站点(在同一个服务器上时)就会有不同的漏洞,提供了更多的可能。
端口类站点原理和 “目录型站点” 是一样的,只不过是将目录换成了端口,举个例子
192,168,100,1:80 和 192,168,100,1:8080,虽然是一个同样的IP地址,但是有可能不同的端口访问的可能不是一个网站,同样也会提供两种不同的思路,同上
子域名站点网站可能会有很多子域名,拿一般学校网站来举例,一个学校有很多不同的系,比如说中文系可能是:zw.xxx.com 信息工程可能是:xxgc.xxx.com这样的情况,那么如果这个时候子域名出现和主站出入很大的情况,那么就也是同样会多出两种不同可能性
类似域名站点举个例子,比如京东网站之前可能是 www.jingdong.com,现在则是www.jd.com这两个域 ...
信息收集-APP及其他资产等
提取安卓软件中的网站信息——“漏了一个大洞”,这个文件不提供下载连接,小迪老师的课有讲
操作步骤是:
逍遥模拟器使用BURP抓包
在逍遥模拟器的设置当中,进入WIFI,然后长按WIFI,选择修改——>选择代理——>手动,这里注意不能设置为127.0.0.1,而是要设置为你的有线网的IP地址,192.xxx.xxx.xxx,如果是连的是WIFI,就用无线网卡的IP地址。
第三方平台搜索
各种端口一顿乱扫-思路
各种接口一顿乱扫-思路
接口部分一顿测试-思路
信息收集——资产监控拓展
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556#Title: wechat push CVE-2020#Date: 2020-5-9#Exploit Author: weixiao9188#Version: 4.0#Tested on: Linux,windows#cd /root/sh/git/ && nohup python3 /root/sh/git/git.py &#coding:UTF-8import requestsimport jsonimport timeimport osimport pandas as pdtime_sleep = 20# 每隔 20 秒爬取一次while (True): headers1 = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) ...
信息收集总结首先在信息收集的时候要确定对方有没有CDN,如果有的话要尝试找到主站的方法,因为有可能你最后攻击的目标可能只是运营商的缓存服务器,而且结合CDN的特性,具有天然的抗DDOS攻击的效果。
如何确定主站?CDN对测试有何影响&如何绕过
子域名查询:有的网站主域名会做CDN,但是子域名可能不会做,还有一个小技巧就是一个网站在解析的时候,不加www和加上都可以访问,原因是在域名解析的时候设置了对应的解析地址,所以有可能一个网站在解析的时候,有可能加上www的有CDN,不加的可能就直接是真实IP了,还有一个查询小技巧就是有的站点在前面改为 m.xxx.com的类型的时候访问的是手机类
邮件服务查询:我们访问别人,可能通过CND,但别人访问我们通常不会走CDN,就是说网站在注册的时候,一般要邮箱地址,而这个时候,从他返回过来的邮件中的IP地址,极有可能是主站IP地址,因为一般邮件,是有单独的邮件服务器的,具体怎么查看邮件中的IP地址,百度查询,如果是软件这类,应该和小迪老师一样,右键源代码查看,不同的话百度查询
国外地址请求:国外没有cdn节点的话,可能直接走原ip
遗留文 ...
WEB漏洞必懂知识点01:注入漏洞
1)SQL注入(SQL Injection)
由于程序对SQL相关的一些敏感字符缺少过滤or转换,攻击者把SQL命令插入到用户提交的数据中,欺骗服务器执行恶意的SQL命令,非法获取到内部权限和数据。
风险:读取or篡改数据库的数据,获取服务器or管理员权限
类型:
a、数据型
b、字符型
其他注入方式
c、伪静态注入
d、GET & POST注入
e、Cookie注入
2)SQL盲注(SQL Blind Injection)
a.基于布尔的盲注[Boolean-Based]
SQL注入过程中,应用程序仅仅返回True页面和False页面,无法根据应用程序的返回页面得到数据库信息,但可通过构造逻辑条件(如比较大小)向服务端请求后的返回页面来分析判断我们所需要的数据库信息。
b.基于时间的盲注[Time-Based]
注入的SQL代码影响后台数据库的功能,但此时Web的前端页面始终显示True页面,知识页面返回的响应时间有差异,可以根据时间差来推断注入语句中的判断条件真假,继而获取数据库相关的信息。
3)OS命令注入
OS Command Inj ...