• 相关作业总结


    # 总结这几天的学习内容
    
    # Pikachu的CSRF模块            apipost6(工具)
    
    # GET:
    
    皮卡丘的网址,修改信息,进行抓包
    
    最后总结:token
    token如何防止CSRF
    CSRF的主要问题是敏感操作的链接容易被伪造
    每次请求,都增加一个随机码(需要够随机,不容易伪造),后台每次对随机码进行验证
    网页接受从后台发过来的token,类型不可见。将其一并提交给后台进行验证。每次刷新,后台发送过来的token都不一样,起到了防止伪造的作用。
    
    防范措施
    增加token输证(常用的做法):
    1.对关健操作增加token参数,token值必须烈机,每次都不一样;
    关于安全的会话管理(避免会话被利用):
    1,不要在客户脑助保存部源信息(比如身份认证信息):
    2.测试直统关闭,退出时,的会话过期机制:
    3,设置会活过期机制,比如15分钟内无操作,则自动登录超时;
    访问控制安全管理:
    1.敬感信息的修改时需要对身份进行二次认证,比如修改账号时,需亚判日密码;
    2.敏浸信息的修改使用past,而不是get;
    3.通过http头部中的referer来限制原页面
    增加验证码:
    
    一般用在登录《防暴力破模),也可以用在其他重要信息操作的表单中《需要考虑可用性】
    
    # 二,JAVA的安装遇到的问题
    
    Java三大版本
    Write Once,Run Anywhere
    JavaSE: 标准版 (桌面程序,控制台开发…)
    JavaME: 嵌入式开发 (手机,小家电…),已经凉了
    JavaEE: E企业级开发 (Web端,服务端开发…),JavaSE为基础
    
    
    
    安装开发环境
    卸载JDk
    删除Java安装目录
    删除环境变量JAVA_HOME
    删除path下关于JAVA的目录
    Java -version
    安装JDK
    百度搜索JDK8,找到下载地址
    同意协议,下载电脑对应的版本,如64位操作系统下载 jdk-8u281-windows-x64.exe
    双击安装JDK
    记住安装路径
    配置环境变量
    我的电脑-》属性-》系统高级设置-》环境变量
    系统变量 新建–> JAVA_HOME 输入对应的jdk安装路径
    path变量–>% JAVA_HOME%\bin
    测试是否成功 cmd–>Java -version
    J
    
    自此,我的问题解决成功
    
    # 三,文件上传漏洞(二)
    
    一,%00截断和00截断
    
    二,靶场闯关
    
    三,条件竞争
    
    strrposs用函数,在于截取后缀,if:判断 (inarray)是否匹配 到数值并执行代码,相反则执行else   tmp:临时     HEX:查看网页传参的十六进制代码
    
    截断:有一个终止符  
    
    1.php.jpg=>操作系统        1.php终止符号.jpg=>白名单检测   jpg
    
    move_uploaded_file()移动文件
    
    点击上传=>临时目录=>移动出来重命名
    
    黑名单不安全,白名单(不一定安全)
    
    点是连接符,/:路径,rand(10,99)=>随机值10-99随机选择一个
    
    date(“YmdHis”)=>时间日期        
    
    把图片直接塞入数据库:
    
    图变文字,文字变图
    
    URL编码=>%××××
    
    GET可以接受URL编码,而POST不能
    
    https://www.bejson.com/convert/ox2tr/     (做渗透,去截断)
    
    ​	对一句话检测:
    
    ​           一句话木马改后缀名
    
    ​          渲染图片,检测图片类型,图片内容
    
    ​         图片马(图片+一句话木马)
    
    /b:二进制复合    copy 1234.jpg/b+1.php 2222.jpg
    
    gif绕过 不会去渲染前面几行的代码       png绕过(操作起来很麻烦)
    
    # 四,站长新动力
    
    不能直接用控制台
    
    然后在上面的网址com后填上?url=">//(标签法)
    
    大小写:
    
    事件法:
    
    伪协议法:click
    
    1)http://:这个是协议,也就是HTTP超文本传输协议,也就是网页在网上传输的协议。
    
    2)www:这个是服务器名,是指在因特网上以超文本为基础形成的信息网。
    
    3)php.cn:这个是域名,是用来定位网站的独一无二的名字。
    
    4)www.php.cn:这个是网站名,由服务器名+域名组成。
    
    5)/:这个是根目录,也就是说,通过网站名找到服务器,然后在服务器存放网页的根目录
    
    6:)article.html:这个是根目录下的网页
    
    牢记知识点:rul接受用户的输入,get方式
    
    # 五,手工注入
    
    墨者靶场
    
    是否有注入点,and 1=1网页没有变化, and 1=2网页变化。
    
    我们发现这里存在sql注入
    
    接下来进行排查字段数,使用 order by 语句,开始测试,结果如下:
    
    输入1时无变化,直接增大到5试试看,如下:
    
    页面报错了,证明他低于五个字段
    
    判断列数:(有四列)null代替,第五列的时候报错
    
    利用回显获取数据库名称
    
    查询数据库中的表:
    
    分别查询两个表的字段:(发现stormgroup_member表中有账号和密码
    
    查询stormgroup_member表的字段:
    
    账号为:dsan13
    
    密码为:150046
    
    # 六,文件上传漏洞
    
    一,客户端检测
    
    二,服务端检测
    
    三,靶场闯关
    
    客户端校验:一般是在月页上写一段Js脚本,用Js去检测,校验上传文件的后绍名,有白名单也有黑名单。
    判断方式:在浏览加载文件,但还未点击上传按钮时便弹出对话框,内容如:只允许上传jpg/jpeg/.png后缀名的文件,而此时并没有发送数据包,所以可以通过抓包来判断,如果弹出不准上传,但是没有抓到数据包,那么就是前端验证
    前薪验证非常不可靠,传正常文件改数据包就可以绕过,甚至关闭JS都可以尝试晓过
    墨白名单机制:
    思名单:不允许上传什么
    白名单:只允许上传什么
    白名单比黑名单更安全
    靶场第题:http://59 63.200.79.8016/Pass-01/ndex.php
    
    用Burp抓包修改
    
    文件上传=>功能
    
    上传头像,上传照片,上传文档
    
    上传后端脚本,包含恶意语句并且能正常访问,就可以控制服务器
    
    黑名单:不允许上传什么
    
    白名单:只允许上传什么
    
    安全中的概念:
    
    黑名单:不允许名单的XXX
    
    白名单:只允许XXX
    
    白名单安全性要高于黑名单
    
    分布式配置文件:
    
    网站有自己规则:php
    
    特例:如果我存在听我的 重新定义规则
    
    php=>windows机器里不在意大小写(可以改后缀大小写)
    
    空格绕过法:
    
    php   php空格  不相同   抓包修改
    
    点绕过法:
    
     抓包修改
    
    Windows文件流绕过:
    
    抓包后缀加::$DATA
    
    ###### .php: :$DATA
    
    点空点的组合
    
    双写构建:双写绕过法
    
    pphphp(抓包修改)(未做循环可用)
    
    没什么基础:PHP+python/golang
    
    有点电脑基础的:JAVA
    
    比较厉害的:C+汇编
    
    # 七,跨站请求伪造
    
    一,什么是CSRF?
    
    
    
    Cookie代表你的身份权限 存活周期
    
    同源法则:同ip同端口同协议的属于同源  共用Cookie
    
    hack.zkaq.cn 1                bbs.zka2
    
    CSRF:偷偷的让浏览器发送数据包
    
    A站点->JS让你访问B站点
    
    受害者的浏览器上面执行的
    
    B是正常网站,A是黑客搭建危险站点!
    ## (二)CSRF靶场演示
    
    CSRF:防御方式:
    
    Cookie里面有。传参里面有,要求对应才生效
    
    Cookie=token=nf
    
    Token一串随机值
    
    (Cookie和Token要求对应)
    
    token=nf;newpasswd=123456
    
    A=>B   csrf永远不知道目标的Cookie
    
    利用JS自动提交数据
    
    通过Burp的工具生辰攻击数据包
    
    是针对你本地。修改参数
    
    1,传参地址要修改,肯定要写到目标传参
    
    2,传参内容,文件写入的路径
    
    
    CSRF和xss有什么区别:
    CSRF:利用Cookie,但是无法获取Cookie xss:获取Cookie
    鸡肋漏洞组合拳:
    CSRF self-xss :=>CSRF和反射型xss搭档的时候会产生很不 
    错的效果
    a.nf.com
    
    后台存在反射性xss    直接打一个xss   并访问它
    
    # 八,XSS原理与解剖
    
    SQL注入 =>用户输入的数据被当作SQL代码执行
    
    XSS => 用户输出的数据会被当做前端代码执行 
    
     XSS:偷取用户的身份凭证
    
    HTTP他是无状态无连接的协议
    
       Cookie:通行证
    
     document.cookie
    
    JS操纵:
    
    1、读取信息
    
    2、可以发起请求(ajax 异步传输)
    
     
    
    读取Cookie将Cookie发送出去成了一个攻击手法
    
    游览器法则:同源策略 同源性法则
    
    同源:同协议 同域名/ip 同端口
    
    XSS能窃取到的Cookie只能读取当前触发页面同源下的Cookie
    
    XSS三大类型:
    
    反射型:非持久性生效的攻击,仅仅作用一次(目标必须主动输出恶意语句)
    
    储存型:恶意语句会被储存住,别人访问显示的页面就会中招
    
    Dom型
    
    
    
    XSS如何被触发:
    
    用户输出的数据被当作前端代码执行(JS代码)
    
    
    
     JS代码有三种触发方法
    
    1、标签法:
    
    2、伪协议法:小众协议叫做伪协议(自定义协议)
    
    javascript:
    
    123
    
    3、事件触发法:on 专门表示事件(事件加在标签内)
    
    ## DOM型和反射型有什么区别?
    
    
    
    XSS就是XSS。所谓“存储型”、“反射型”都是从黑客利用的角度区分的。对于程序员来说意义不大,反而是误导。只有“DOM-based”型略有不同。
    
    XSS、SQL injection之类的漏洞,原理都是破坏跨层协议的数据/指令的构造。
    
    如SQL注入,涉及应用层和数据库层。协议是SQL查询语言。对于应用层来说,一句sql是数据(字符串);对于数据库层来说,一句sql是指令。sql注入的原理,就是破坏sql的构造。防御的方法,就是用参数查询(现代所有的数据库驱动的api一定包含了)而不是自己拼sql字符串。这个已经是所有后端工程师的基本常识了。
    
    而XSS,两个层次是服务器端和浏览器端。协议就是HTML/CSS/JavaScript。对于服务器端来说,html是数据(字符串);对于浏览器端来说,html是指令。XSS的原理,就是破坏html/css/js的构造。
    
    防御的方法,一般认为是正确escape,就是替换尖括号、引号等特殊符号。
    
    但是这是不够的,因为这只解决了html的问题。考虑如下:
    
     
    
    这代码显然有XSS隐患。
    
    那么我们escape一下,是不是就好了?
    
     
    
    很遗憾这样是没用的。因为这里是javascript输出点,xss破坏的目标是破坏js构造而不是html构造。html构造中的关键字符是尖括号、双引号、“&”符号等。而js构造就复杂了,比如换行、注释(//和/*)、引号(包括单引号)等都会改变构造。
    
    为了确保js构造的正确,应该:
    
     
    
    不过这还是存在一个漏洞。(作为一个简单的习题留给同志们。)
    
    【另外PHP不同版本的json_encode的行为不一致,几乎都有问题,虽然不至于直接XSS,但存在被利用的可能。】
    
    显然,PHP没有提供比较便利的方式来确保代码的安全,这是那个年代(199x)服务器端脚本技术的通病。遗憾的是,web技术发展到今天,即使是常见的现代Web模板,大多提供了默认的html escape,但对inline script中的XSS防御就乏善可陈了。
    
    ## 一,被攻击的对象不同
    
    ## 二,解析位置不同
    
    ## 三,存储时间不同
    
    ## 四,允许输入点不同
    
    # 反射型与存储型的区别:
    
    ## 记录不经过后端
    
    # 信息收集都有哪些:
    
    
    
    ## whois(微步),网站架构,dns信息(通过查找dns可以检测到是否有子域名收集),子域名搜索,敏感目录及敏感信息,源码泄露,脆弱系统(网络空间),旁站查询,C段查询,指纹信息,端口服务,备案信息,真实IP,探测waf,社工(朋友圈,空间,求职等),企业信息(天眼查,企业信用信息公式系统)
    
    ## 
    
    
    
  • 相关阅读:
    【NOI模拟赛】为NOI加点料(重链剖分,线段树)
    使用shapely判断坐标点位于哪个路区
    黑马JVM总结(十一)
    计算机毕业设计ssm计算机学院大学生实践指导系统lk43b系统+程序+源码+lw+远程部署
    RAG的进化之路:从单兵作战到多智协作
    【剑指Offer】:循环有序列表的插入(涉及链表的知识)
    android: Preferences DataStore 和 Proto DataStore use guide
    深入了解Spring Boot Actuator
    处理链运行状态邮件发送
    【并发编程】- 线程池使用DiscardOldestPolicy策略、DiscardPolicy策略
  • 原文地址:https://www.cnblogs.com/liumingyu/p/16617828.html