首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP网络技术(二)——模拟网络灌水攻防

PHP网络技术(二)——模拟网络灌水攻防 (原创内容,转载请注明来源,谢谢) 一、概念 网络上如留言板、论坛等,可以提交评论的地方,或者其他可以给用户提交内容并且需要存入数据库的地方,就存在灌水的可能...灌水,即破坏者通过大量输入无用信息,造成网站负担严重,数据库存储空间变大,多了大量无用的数据。...四、模拟发送垃圾评论 为了模拟发送垃圾评论,先自己建一个html,用于简单的评论,将评论提交到数据库,采用ajax的方式获取页面数据往后台传。较为简单就不附上代码。...可以使用PHP的SERVER中的变量REMOTE_ADDR,功能是浏览当前页面的用户的 IP 地址。...对于抓包工具,我最熟悉的是Fiddler,此为免费软件,网络上有很多使用方法介绍的很详细,在此贴上几个我觉得讲的不错的链接。

1.3K40

XSS 和 CSRF 攻击

sessionId(拿到该用户的登录凭证) 如果需要收集来自被攻击者的数据(如cookie或其他敏感信息),可以自行架设一个网站,让被攻击者通过JavaScript等方式把收集好的数据作为参数提交,随后以数据库等形式记录在攻击者自己的服务器上...需要对用户的输入进行处理,只允许输入合法的值,其它值一概过滤掉。 某些情况下,我们不能对用户数据进行严格的过滤,那我们也需要对标签进行转换。...浏览器将禁止页面的Javascript访问带有HttpOnly属性的Cookie。 目前主流浏览器都支持,HttpOnly解决是XSS后的Cookie支持攻击。 比如php代码的使用 值的MD5散列,而后我们从该散列中以一个小于24的数字为开始位置,选取8位字母、 返回的$token变量将检索一个8位长的随机令牌。...> 在这个函数中我们调用gen_token()函数,并且使用返回的令牌将其值复制到一个新的$_SESSION变量。 现在让我们来看启动完整机制中为我们的表单生成隐藏输入域的函数: <?

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PHP安全我见

    PHP安全我见     不知道大家注意到没,博客的速度变快了很多。按捺不住还是搬家到了日本主机上,希望更快的速度能带给大家更好的体验。     经过一段时间的努力,基本上完成了一个整站的制作。...我希望能分如下几个方面来分享自己的经验 把握整站的结构,避免泄露站点敏感目录     在写代码之初,我也是像很多老源码一样,在根目录下放上index.php、register.php、...用户能控制的内容,我们一定要使用htmlspecialchars等函数来处理用户输入的数据,并且在javascript中要谨慎把内容输出到页面中。...(比如把所有变量名替换成其MD5 hash值),提高阅读的难度。...在最新的php5.5中,这种hash算法成为了一个正式的函数,以后就能使用该函数来hash我们的密码了。 验证码安全     我在之前的文章里已经详细叙述过了。

    63420

    安全编码实践之二:跨站脚本攻击防御

    只要应用程序获取不受信任的数据并将其发送到Web浏览器而没有正确的验证和转义,就会发生跨站点脚本漏洞。...String firstNameParameter =(String) request.getParameter(“firstName”); 用户输入的值立即存储在局部变量firstNameParameter...在我们旁边的登录页面中,输入test作为用户名和密码。我们所做的每件事都记录在日志数据库中。我们可以继续检查日志数据库,在那里我们可以看到注册了测试用户名的失败登录尝试。...因此,现在每当有人打开日志文件时,他们的cookie值将被发送到capture-data.php页面,然后存储数据。 保卫你的代码! 我们已经详细讨论了如何利用我们的代码在网站上执行恶意XSS攻击。...我们可以采取的步骤如下: - 输入验证 验证应仅在服务器端执行,绝不应在客户端完成。 我们可以允许用户使用的白名单和黑名单。我们可以利用常规的正则表达式或基于框架的反XSS函数来增强安全性。

    1.1K20

    CVE-2020-8813:Cacti v1.2.8 中经过身份验证的RCE漏洞分析

    但是当我尝试修改这个cookie值时遇到了身份验证的问题,而这个问题使我无法访问到目标页面,但是我发现这个包含漏洞的页面是能够以“Guest”身份访问的,这样就不需要进行身份验证了,所以我修改了漏洞利用代码...,并使用“Guest”身份来访问页面“graph_realtime.php”,然后发送恶意请求来在目标主机上实现代码执行。...首先,我们需要向“user_admin.php”页面发送一个请求来启用“realtime_graph”的访客权限,然后再向“graph_realtime.php”页面发送恶意请求。...“graph_realtime.php”文件中的第4行,它使用了sprintf()函数来处理输入,而第一个值“graph”的内容为“local_graph_id”,而这个值是我们可以控制的!...Payload开发 成功控制了会话值之后,我们需要用它来在目标系统中实现代码执行,但由于它本质上还是一个会话值,因此我们无法使用一些特殊字符,所以我们需要开发一个“对会话友好的”Payload。

    1.6K00

    浅谈php安全

    我希望能分如下几个方面来分享自己的经验 把握整站的结构,避免泄露站点敏感目录 在写代码之初,我也是像很多老源码一样,在根目录下放上index.php、register.php、login.php...以后我们在脚本的编写中,尽量使用绝对路径而不要使用相对路径(否则脚本如果改变位置,代码也要变),而这个绝对路径就来自入口点文件中的定义。 当然,在安全性上,一个入口点文件也能隐藏后台地址。...吴翰清在web白帽子里说的很好,其实很多漏洞,像sql注入或xss,都是将“数据”和“代码”没有区分开。“代码”是程序员写的内容,“数据”是用户可以改变的内容。...用户能控制的内容,我们一定要使用htmlspecialchars等函数来处理用户输入的数据,并且在javascript中要谨慎把内容输出到页面中。...比如把所有变量名替换成其MD5 hash值),提高阅读的难度。

    1.9K80

    程序猿必读-防范CSRF跨站请求伪造

    但是事实上并不是如此,很多网站在开发的时候,研发人员错误的认为GET/POST的使用区别仅仅是在于发送请求的数据是在Body中还是在请求地址中,以及请求内容的大小不同。...验证码 使用验证码可以杜绝Csrf攻击,但是这种方式要求每个请求都输入一个验证码,显然没有哪个网站愿意使用这种粗暴的方式,用户体验太差,用户会疯掉的。...简单实现STP 首先在index.php中,创建一个表单,在表单中,我们将session中存储的token放入到隐藏域,这样,表单提交的时候token会随表单一起提交 页面的表单中使用{{ csrf_field() }}来生成token,该函数会在表单中添加一个名为_token的隐藏域,该隐藏域的值为Laravel生成的token,Laravel使用随机生成的40个字符作为防范...而使用前面两种方式在页面中加入的token就是使用的这一个值。

    2.5K20

    网站移动端APP渗透测试安全检测方案

    网站使用的是php语言开发,采用是mysql数据库,客户服务器用的是linux centos系统,用phpstudy一键环境搭建,PHP的版本是5.5,mysql数据库版本是5.6.客户网站是一个平台,...这里不详细的分析代码了,我们在测试中发现平台的后台管理页面存在SQL注入漏洞,当管理员登录后台的时候我们看到guanlilogin.php里POST到guanlicheck.php来对管理员的账号密码进行验证...0值然后再将IP赋值进去,通俗来讲就是没有任何的安全效验与拦截,直接将变量的IP带入到mysql据库。...在对前端输入过来的值进行安全判断,确认变量值是否存在,如果存在将不会覆盖,杜绝变量覆盖导致掺入恶意构造的sql注入语句代码在GET请求,以及POST请求里,过滤非法字符的输入。...逻辑漏洞的修复办法,对密码找回功能页面进行安全效验,检查所属账号的身份是否是当前的手机号,如果不是不能发送验证码,其实就是代码功能的逻辑设计出了问题,逻辑理顺清楚了,就很容易的修复漏洞,也希望我们SINE

    1.8K40

    网站渗透测试以及安全检测服务

    网站使用的是php语言开发,采用是mysql数据库,客户服务器用的是linux centos系统,用phpstudy一键环境搭建,PHP的版本是5.5,mysql数据库版本是5.6.客户网站是一个平台,...这里不详细的分析代码了,我们在测试中发现平台的后台管理页面存在SQL注入漏洞,当管理员登录后台的时候我们看到guanlilogin.php里POST到guanlicheck.php来对管理员的账号密码进行验证...代码里的getenv参数是获取前端用户的https头信息,通过数据比对,如果头信息大那么久返回0值然后再将IP赋值进去,通俗来讲就是没有任何的安全效验与拦截,直接将变量的IP带入到mysql据库。...在对前端输入过来的值进行安全判断,确认变量值是否存在,如果存在将不会覆盖,杜绝变量覆盖导致掺入恶意构造的sql注入语句代码在GET请求,以及POST请求里,过滤非法字符的输入。...逻辑漏洞的修复办法,对密码找回功能页面进行安全效验,检查所属账号的身份是否是当前的手机号,如果不是不能发送验证码,其实就是代码功能的逻辑设计出了问题,逻辑理顺清楚了,就很容易的修复漏洞,也希望我们SINE

    2.5K10

    SRC逻辑漏洞挖掘详解以及思路和技巧

    将数据包发送到repeater,每次修改username值,发现,只需要修改username值就可以注册成功用户,图形验证码无效,并且未对电话,邮箱等信息校验,可批量注册。 ? ?...登录普通用户test2,查看用户敏感的页面: ? 发送到repteater数据包中,看到cookie中存在username参数,修改为已存在的用户名,发现返回包中可查看其他用户敏感信息。 ?...safedog嵌入的JS脚本当做数据发送给服务器上的PHPMyWind网站的反射型XSS漏洞点; 3.过程3与过程4代表PHPMyWind网站在受到反射型XSS攻击后,会执行JS脚本,将受害者victim...img.height = 0; //将img元素的src属性指向脚本文件ReflectiveXSS.php //将cookie信息的字符串作为URI组件进行编码,然后用victimcookie参数传递...; 4.接受验证码的手机号修改为自己的号码,然后输入自己的号码接收到的验证码去进行密码重置; 5.获取验证码的时候,会生成一个身份标识(例如cookie值),那么我们就替换他人账号的身份证重置他人的密码

    5.7K11

    网络安全自学篇(十八)| XSS跨站脚本攻击原理及代码攻防演示(一)

    后台的 xss2.php 将执行数据库存储操作,本地MySQL数据库创建一个名为 XSSDB的数据库,并插入一张XSS表,如下图所示。 ? ? xss2.php代码如下所示: ?...此时另一个页面 select.php 负责提供给其他用户访问,则可以看到我们的信息。 ? 当我们输入正确的值,如下图所示: id:1 name:yangxiuzhang ? ?...此时数据库中可以看到我们插入的值。 ? 通过本地网址(localhost:8088/xss/select.php?id=1)我们能获取id为1对应的name值。 ?...1.输入过滤 输入验证就是对用户提交的信息进行有效验证,仅接受指定长度范围内的,采用适当的内容提交,阻止或者忽略除此外的其他任何数据。如下代码,检查用户输入的电话号码是否真确(数字、字母检测)。 ?...网络安全的视频资源确实挺贵的,作者也会继续开源免费的分享更多文章和代码,希望能帮到更多的初学者,你们的每一句感谢和祝福都激发着我前行。

    16K75

    PHP 安全性漫谈

    还可以考虑关闭 register_globals,magic_quotes 或者其它使编程更方便但会使某个变量的合法性,来源和其值被搞乱的设置。...2、用户输入表单问题 验证用户输入的任何数据,保证PHP代码的安全。 注意1:JS只是为了提高来访用户的体验而产生的,而不是验证的工具。...因为任何一个来访的用户都可能会,也有可能无意间就禁用了客户端脚本的执行,从而跳过这层验证。所以我们必须在PHP的服务器端程序上检验这些数据。...注意2:不要使用$_SERVER[‘HTTP_REFERER’]这个超级变量来检查数据的来源地址,一个很小的菜鸟黑客都会利用工具来伪造这个变量的数据,尽可能利用Md5,或者rand等函数来产生一个令牌,...-检查所有提交上来的变量。 -以下是更加安全的文件名和变量的验证和检查: <?

    1.4K70

    web漏洞 | XSS(跨站攻击脚本)详解

    用户输入作为script标签内容 用户输入作为HTML注释内容 用户输入作为HTML标签的属性名 用户输入作为HTML标签的属性值 用户输入作为HTML标签的名字 直接插入到CSS里 最重要的是,千万不要引入任何不可信的第三方...PHP中常见的接收参数的方式有_GET、_POST、 也可以搜索类似echo这样的输出语句,跟踪输出的变量是从哪里来的,我们是否能控制,如果从数据库中取的,是否能控制存到数据库中的数据,存到数据库之前有没有进行过滤等等...我们构造了如下代码,将其保存为html页面,然后放到我们自己的服务器上,做成一个链接。...XSS漏洞 我们抓包查看 我们构造了如下代码,将其保存为html页面,然后放到我们自己的服务器上,做成一个链接。...实际上这个页面偷偷的进行了表单的提交。 而我们的XSS平台也收到了发送来的数据(这数据中没有Cookie的原因是这个网站我没设置Cookie,只是随便写的一个页面)。

    5K20

    实战技巧 | 知其代码方可审计

    我们应该具备一些知识: 1.基本的正则 2.数据库的一些语法(这个我在前面的数据库维基已经讲的差不多了) 3.至少你得看懂php代码 4.php配置文件以及常见函数 0x03 关于文章的一些问题 前面我们的实验环境我基本上不会使用框架类的...id=1"> 那么访问这个帖子的人账号都将会删除,POST的见下文,造成CSRF的原因就是没有使用token或者验证其他值,审计就看页面有没有token、referer验证,验证是否可以绕过,不过我推荐还是先黑盒...,使用数组键值作为变量值。...可以看到我们初始变量值为a但是覆盖之后就变成了我们输入的值。...此函数只能用于PHP4.1 ~ PHP5.4。 ? $$ 典型的例子就是foreach来遍历数组中的值作为变量。 ? 其中_key的值为a,那么 a的值就被覆盖为2了。

    1.7K40

    WordPress开发人员犯的12个最严重的错误

    1.将WordPress主题的JavaScript代码放入一个主文件中 有一次,在为客户的网站做页面速度优化时,我注意到他们使用了一个高级主题,这个主题包含了所有他们正在使用的库,包括定制代码,在一个名为...如果目的是使页面响应,那么这应该通过媒体查询和JavaScript在前端进行。后者,只有真的是必需的。理想情况下,您希望避免使用JavaScript来使您的网站响应。...一些最重要的安全提示是: XSS漏洞:为避免这一点,必须做两件事情:清理数据输入并清理输出数据。根据使用的数据和上下文,WordPress中有几种​​方法来清理代码。...不应该信任任何输入数据,也不应信任何打印的数据。消除数据输入的一个常见函数是sanitize_text_field()。...通常有一些机器人可以在一致的基础上自动扫描WordPress网站,,发现目前已知的漏洞并利用它,服务器被用于发送垃圾邮件,从数据库获取私人信息,,将隐藏的链接放在网站的某些页面中将导致各种诡异的网站(例如色情

    2.9K10

    Kali Linux Web 渗透测试秘籍 第六章 利用 -- 低悬的果实

    所以我们通过连接发送的任何东西都会被服务器接收作为 shell 的输入。 也可以让服务器下载一些恶意程序,例如提权利用,执行它来获得更高权限。...对密码值执行相同操作,并点击Cluster bomb作为攻击类型: 下一步就是定义Intruder 用于对我们所选择的输入测试的值。访问Payloads标签页。...的参数,它的值储存在document.cookie中,它是 JavaScript 中储存cookie值的变量。...我们可以将这些哈希复制到我呢本文呢减重,并且尝试使用 John the Ripper 或我们喜欢的密码破解器来破解。...知道我们希望获得哪个表(-T accounts)之后,我们告诉 SQLMap 使用--dump转储它的内容。 更多 SQLMap 也能够注入 POST 参数中的输入变量。

    77820

    Pikachu漏洞平台通关记录

    开始复习最基础的Web漏洞,查漏补缺,打好基础,我也尽量把文章写得详细一些,希望对刚入门的小白能有一些帮助。...三、我们随便输入用户名和密码,输入正确验证码进行抓包,发送到repeater模 图片 按理说输入不同的用户,应该报验证错误的提示,但是这里却没有,说明在输入第二个用户时验证码还没有过期,那么第三种情况就满足了...漏洞分析: 当刷新页面,客户端向服务器发出请求,生出新的验证码; 同时后台会在session中将这个验证码存下来【目的是为了对用户输入的验证码进行验证)】; 所以当输入错误或空的验证码都会提示错误信息...token值都是不一样的,所以我们只能选择单线程进行攻击 将最下方的Redirections选择为Always,如果不点上这个就不会打开html包的body部分,因为token值是存储在body的hidden...没有输出报错语句 正确的sql语句和错误的sql语句页面返回一致 SqlMap实现时间盲注 --batch: 用此参数,不需要用户输入,将会使用sqlmap提示的默认值一直运行下去。

    2.8K11

    ZZCMS v8.2 代码审计

    ,'back');} } 依然表达的非常简单,如果验证码和环境变量中的验证码不一样就弹提示框和退出 这个环境变量是怎么来的呢,我们来看看生成验证码的页面code_math.php这里我省掉了一些无关的代码...,可以一直使用该验证码进行发送各种请求 后台登录页面存在SQL注入漏洞 后台页面地址位于http://192.168.2.100/admin/login.php,这个login.php是个前端页面,通过把请求发送给...这个页面有一个功能,保存设置,当我们输入完成相关的设置之后,点击保存即可,保存请求会发送给siteconfig.php页面我们来看一下保存设置相关代码,可设置的内容很多,然而实际上能用得上的很少以下是保存设置的代码..."; } 首先打开文件,然后将参数加到变量$fcontent里,然后作为常量保存到文件里,这里不涉及数据库,不存在SQL注入的问题 主要我们能够有效控制的参数一部分来自基本信息设置,另一部分来自图片上传功能网站基本信息设置...输入完信息点击下一步之后,Burp拦截数据包,将数据包发送到Repeater模块中备用,然后再发送当前拦截的数据包进入下一阶段 ?

    1.4K10

    php基本语法复习

    ,会删除所有变量,不过有时我需要不删除某个局部变量 使用static关键词 的数据 下面是一个包含输入字段和提交按钮的表单,当用户通过点击提交按钮来提交表单数据时,表单将发送到标签的 action 属性中指定的脚本文件....>标签的enctype属性规定了在提交表单时要使用哪种内容类型,在表单需要使用二进制数据时,比如文件内容,请使用”multipart/form-data” 标签的type=”file”属性规定了应该把输入作为文件来处理...基本的错误处理:使用die()函数 die()函数的错误处理机制,在错误之后终止了脚本 过滤器 概念 PHP过滤器用于验证和过滤来自非安全来源的数据 验证和过滤用户输入或自定义是任何web应用程序的重要组成部分...$_SERVER[“PHP_SELF”]将表单数据发送到页面本身,而不是跳转到另一张页面,这样用户就能在表单页面获得错误提示信息 表单验证 验证名字 检查name字段是否包含字母和空格,如果name字段无效

    23210
    领券