#知识点:

1、PHP-全局变量$_SERVER

2、MYSQL-插入语法INSERT

3、输入输出-XSS_x0005_&反射&存储

4、安全问题-XSS跨站&CSRF等

演示案例:

➢小迪博客-输入输出&留言板&访问获取

➢墨者靶场-IP地址伪造来源&来源页伪造

先说一下这个输入输出引发的反射型xss和储存型xss

把源码写好在浏览器打开,就可以模拟输入输出(相当于利用查询语句查询数据库里面的东西)。然后当我们输入一个正常的东西,比如我们输入1,他就会查询到后面的pxy之类的。这些都很正常,但是当我们输入一个js语句之后,你会发现事情变得不一样了。

比如我们输入<script>alert(1)</script>,他就会执行这个js代码,所以输出的你搜索的“”内容如下这句话,双引号里面没有东西是空的。因为他执行了。从而出现个弹窗。也就是说输入的代码可以控制网站的显示。因此当我们能够控制网站的显示也就代表了漏洞的产生。而执行js代码就属于xss漏洞(有一句话说的好,叫见缝就x)这个属于反射型xss,也是短期的。

注解:XSS

cross site script,跨站脚本攻击(关键字:脚本)。为了与 css 冲突取名为 xss!XSS攻击的核心原理是:不需要你做任何的登录认证,它会通过合法的操作(比如在url中输入、在评论框中输入),向你的页面注入脚本(可能是js、hmtl代码块等)。

恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

有短期也就有长期,那也就是储存型xss,当我们去留言去评论。比如我上一分钟留下的言,你下一分钟刷新就可以看到我的留言。这里面涉及两个动作,一个是留言,一个是刷新。也对应着数据库的写入和查询,也就是insert和select。当你留言之后会,留言的内容会保存到数据库或则可以保存的文件等。因此每一次刷新就会select查询一次。那如果把js语句当作留言内容。就会储存到数据库中。当我们没刷新一次就会弹窗一次。这个就是储存型xss。他是持久型的,危害是比反射性xss大的。

然后说一下php的全局变量$_SERVER,直接上图。内容不全,自己可以去网上搜。

这些全部都是用来获取访问者的信息以及服务器的一些信息。

就比如这个$_SERVER['HTTP_USER_AGENT'] #当前请求的 User_Agent: 头部的内容。你就可以通过它获取到ua头。然后去网上看看与之相关的信息。

还有一个就是通过这个超全局变量获取到ip地址,下面是源码。至于为啥会存在这么多行,都是if嵌套的,是因为它需要判断你有没有代理之类的。

那你可能会问讲这个有啥用。下面举个例子。

就是站长之家的ip查询,正常情况下,他的ua头是下面的内容

但是当你通过抓包,修改ua头里面的信息之后就会发现不一样。(不要忘了弄证书,不然抓不到https的包。具体就是把浏览器设置代理之后,访问http://burpsuit。就可以下载证书了。我这个方法可行,在网上找的有的方法不太行)

这里把ua头里面的信息改成123,就会显示这样。如果把123改成个跨站语言。那就是个典型的反射性xss了。本来是可以插入js代码的。但是被人提交漏洞了,现在这个地方被过滤了,不可以插入js代码了。这就是个ua欺骗,触发xss。

这也说明了一个问题,根据网站的功能去看它相应的漏洞。就比如这个ip查询,是个接口类的查询的功能行动应用。他的源码肯定有接受的地方,就像上面的那个代码,查ip的,查ua头的,他肯定是要接受才可以给你返回信息。那也就对应着那个输入输出的东西了。而网站为啥要接受浏览器信息呢。因为有安卓有pc,显示的版面不太一样。

因此根据网站的接收功能,他的接受功能越多,那对应的漏洞隐患也就越大。反之越少。

还有一个就是$_SERVER['HTTP_REFERER']

链接到当前页面的前一页面的 URL 地址。也就是从哪里跳转过来的,就会显示上一个页面的url地址。

在我们实际场景中。比如你访问个网站,网站提示来源非法,未知地址之类的,就不让你访问。这时候你就要从他的源去访问,而这个$_SERVER['HTTP_REFERER']就是获取来源的url地址。下面讲个来源页伪造,就是跟这相关的,其实也就是Referer伪造。

开启靶场后,正常访问,提示只能从谷歌访问这个地址,就是$_SERVER['HTTP_REFERER']它搞得鬼,会获取来源。

解决方法也很简单,用burp抓包,把referer对应的地址改成谷歌就行了。

这是原本的:

这是改之后的:

然后就得到了key:

上面我们说了真实情况下有的网站会提示来源非法,因为这些网站会检测referer。而这个检测主要是防CSRF攻击的。

下面说一下这个CSRF:

如果上图中的网站没有检测来源,那么就会让攻击者通过提前植入的js代码获得到管理者的管理权限或则获取到后台源代码之类的。

下面说个例子:

用一个账号向自己的支付宝付款,上面的是付款链接。当你打开博客的时候就会触发访问这个付款数据包。如果支付宝没有检测来源的话。那么直接就付款了。

这个就是CSRF攻击。

注解:跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

再说一个案例。IP地址伪造的:

先利用弱口令登录,比如admin admin。登上去发现IP受限制

而像这个网站收集ip信息,一般有两种情况,一是收集ip做一些统计或干其他的事情。还有一个就是做ip限制。比如一些服务器为了安全,只让本地的ip去登陆,其他的ip做限制。这样就可以过滤一些攻击,就算你得到账号密码,但是ip做限制,还是不行的。像这个网站获取IP,一般都是源码去获取

我们上面讲过一个源码获取ip的图。里面有个HTTP_X_FORWARDED_FOR,我们就可以通过HTTP_X_FORWARDED_FOR伪造来解题。

注解:$_SERVER[”HTTP_X_FORWARDED_FOR”] #透过代理服务器取得客户端的真实 IP 地址

通过抓包,把X_FORWARDED_FOR对应的值改成本机地址,就可以伪造。让服务器以为本机登录。

最后就得到了key

(这个是小迪老师的截图,我用burp抓到的包没有x-forwarded这一栏,我在下面加入进去,结果网站一直转圈圈,直接gg)

在真实情况下就对应着ip受限制的话,你就可以试着x-forwarded伪造,在数据包中进行修改。但如果对方不接收这个值,也就是说不以这个值为准的话。那就没办法了,其他地方也不能进行伪造。只有它可以。但是一般都会用我上面图片的那个代码去接收,因为要保证ip的准确性。

这种IP限制走到是php代码本身去判定,还有一种IP限制是tcp协议的IP限制,就是计算机上面用到的一些IP限制。而只有这个php代码里面的这个x-forwarded是可以伪造的,并且网站也是接受这个值的。也就可以实现绕过。其他的就不太行了。就像这个电脑的或则服务器的ip限制,他的判定方式是走的底层协议,是绕过不了的。

网安之php开发第十四天相关推荐

  1. 网安之PHP开发第十六天

    #知识点: 1.JS前端验证-文件上传 2.JS-Ajax传递-登录-状态 3.JS-Ajax传递-购物-参数 1.文件上传 - 类型 - 过滤 设计:通过JavaScript进行文件后缀筛选验证 首 ...

  2. 网安之php开发第十五天

    #知识点: 1.后台验证-登录用户逻辑安全 2.后台验证-COOKIE_x0005_&SESSION_x0005_ 3.后台验证-验证码_x0005_&_x0005_万能密码等 演示案 ...

  3. 即时通讯音视频开发(十四):实时音视频数据传输协议介绍

    概述 随着移动互联网的快速发展以及智能终端性能的逐步提高,智能终端间进行实时音视频通讯成为移动互联网发展的一个重要方向.那么如何保证智能终端之间实时音视频数据通讯成为一个很现实的问题. 实际上,实时音 ...

  4. Vue3官网-可复用组合式API(十四)实例 property(\$slots,\$attrs)、渲染函数render(虚拟节点VNode,h() 参数,使用JavaScript代替模板功能),插件

    Vue3官网-可复用&组合式API(十四)实例 property($slots,$attrs).渲染函数render(虚拟节点VNode,h() 参数,使用JavaScript代替模板功能), ...

  5. 自学Web开发第十四天-基于VB和ASP.NET;丰富数据呈现:TreeView控件的使用及与GridView控件联动,深入研究从GridView中取数据

    自学Web开发第十四天-基于VB和ASP.NET:丰富数据呈现:TreeView控件的使用及与GridView控件联动,深入研究从GridView中取数据 GridView操作数据库后,刷新TreeV ...

  6. 公安部网安局公布2020年十大网络黑产案例

    2020年,全国公安机关网安部门发起"净网2020"打击网络黑产犯罪集群战役,重拳打击为电信网络诈骗.网络赌博.网络水军等突出违法犯罪提供网号恶意注册.技术支撑.支付结算.推广引流 ...

  7. 【Visual C++】游戏开发五十四 浅墨DirectX教程二十一 视觉的诡计 公告板 Billboard 技术

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  8. 【Visual C++】游戏开发五十四 浅墨DirectX教程二十一 视觉的诡计:公告板(Billboard)技术...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 作者:毛星云(浅墨)   微博:@浅墨_毛星云邮箱: happylifemxy@163.com I'm back~,这段时间大家久等了~ ...

  9. asp.net控件开发基础十四

    http://www.cnblogs.com/Clingingboy/archive/2006/09/29/514722.html      上一篇讨论了为服务器控件添加客户端功能,这一篇我们所要讲的 ...

最新文章

  1. 字节跳动实习生提出实例分割新方法:性能超过何恺明Mask R-CNN
  2. AWS 云技术专栏系列文章
  3. 模块--random
  4. Bzoj4503 两个串
  5. PHP闭包(Closure)初探
  6. 网络流-最大流 dinic+当前弧优化(模板)
  7. 本地html页面传递表单值,js实现两个页面表单传值并接收
  8. 【C#】CsvHelper 使用手册
  9. Audiority Big Goat Mac(模拟建模复古失真插件)
  10. 计算机与汉字+输入速度+云输入法,计算机汉字三码输入法的制作方法
  11. 五个比SCI-Hub还牛的下载文献方法,教你全网免费下载外文文献。
  12. 【利用python3和微信接口给女朋友做个公众号推送】
  13. Port-A-Thon
  14. BAT大牛亲授基于ElasticSearch的搜房网实战(第三章环境搭建)
  15. 如何解决出现问题,你的PIN不可用,单击以重新设置PIN
  16. 78M05-ASEMI三端正线性稳压器78M05
  17. QQ微信实现连续发送消息【代码实现】
  18. C#生成不重复随机数(随机宝箱)
  19. Packet Tracer - 在 WLC 上配置基本的 WLAN
  20. 全然用linux工作,放弃windows

热门文章

  1. php百度网盘登录,php登陆状态百度网盘获取文件下载链接【思路|部分代码】
  2. 后端使用thymeleaf模板生成页面转pdf,结果客户现场中文不显示
  3. 微软遥测服务服务器,使用 .REST 配置 Azure 媒体服务遥测 | Microsoft Docs
  4. 私网地址与公网地址是如何转换的?
  5. 好佳居软装十大品牌 软装市场发展状况如何
  6. linux怎么查硬盘是否故障,怎么检查硬盘是否有问题
  7. latex大括号 多行公式_如何快速入门 LaTeX,在 XMind 2020 中轻松输入方程。
  8. android测试类--Method setUp in android.test.AndroidTestCase not mocked
  9. Python实现迷宫游戏
  10. seo和sem是什么意思