打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
那些登录被绕过的php代码都长什么样

脚本之家

你与百万开发者在一起

作者 | Mr Six

出品 | 脚本之家(ID:jb51net)

尽管我自己很少做开发,但是我知道找bug和改bug的经历就像便秘一样难受。语法以及功能性的bug对于普通程序员来说还是相对容易找到的,但是对没有经过专门的安全培训的人来说,很难发现涉及安全方面的bug,准确地说是漏洞。

一般大公司的产品上线之前都会有专门的安全工程师对代码进行审计,一般是借助工具进行半自动或纯手动地审计,这可以使产品的安全性得到很大的保障。但即使这样也无法百分之百保证不会爆出漏洞,更何况是小公司,甚至是一些的个体户,这样的群体里的程序员几乎就是万金油,开发和审计的活都干了,当然质量就大打折扣了。
随着建站成本和难度的降低,Web安全的地位在安全圈里是与日俱增。很多人都会建自己的博客啥的,这种网站几乎全是套用的开源模板,好处是简单,坏处是一旦爆出漏洞,用同一模板的网站就是全军覆灭。
下面是我找到的一套存在后台登录绕过的php模板。
先在本地把网站跑起来。

进入后台登录界面

开启浏览器代理,打开渗透测试神器burpsuite。登录名写admin,密码123(正确的用户名和密码均是admin),点击登录之后抓包。

把抓到的数据包发送到repeater模块,进行测试可以看到,直接发送原数据包会返回错误。

把adminpass参数的值改成admin再发包可以看到返回包提示是正确的。
再把adminpass的值改成123,adminname的值改成admin’ #  之后再发包
可以看到,成功地绕过了。
下面回到登录界面,把请求包按上面这么改,然后放包。

相应的后端php代码是长这个样子的
在这个login.php里面变量$adminsql用来传递要执行的sql语句,可以看到,对于它所接受的两个参数$adminname和$adminpass没有进行任何的过滤,直接带进了sql查询,所以我只要把用户名写成admin ‘ # 就可以把后面的 and adminpass =’$adminpass’语句给注释掉,让它不对密码进行判断,进而就可以对登录进行绕过。
如果连用户名都不知道的话也可以绕过,用类似的思路,构造恒成立语句 ‘ or 1=1 #即可,如下

这是一个比较古老的漏洞了,但犯这个错误的程序员还不少。
如今之所以存在这样的漏洞,却没有经常爆发大规模安全性问题的原因就在于防火墙。对网站造成危害的大多是脚本小子,就是那些只会利用别人写的工具而自己不具备编程能力的人,他们入侵网站主要就是为了炫技。
对于如今的安全技术而言即使是免费的防火墙也能对脚本小子的入侵造成很大的阻力。
所以,我的建议是在代码级防护跟不上的情况下,一定要给网站装上防火墙哪怕是免费的也行,不要吝惜防火墙占用的那点服务器资源,所谓“一墙掩百洞”是有道理的。
不过吧,其实代码级的防护作用还是很有限的,不同的人写代码的风格不一样,很难做到不出漏洞。专业级的付费防火墙由安全专家编写,防护效果更值得信赖。
具体到某一个网站上,漏洞肯定不止一两个,补过漏洞的人肯定知道,有些洞是不好补的,修改起来那就是无穷无尽了。到底如何选择,就看个人了。

本文作者:Mr Six

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
AWVS扫描器开发的批量扫描脚本
零基础学习Web渗透第一课,服务器的漏洞测试环境搭建
ecshop二次开发 结构分析和代码研究 呵呵
代码审计:亿邮邮件系统两个getshell和两个有意思的漏洞 | Seay 渗透 编程 代码审计 网络安全博客
高危警告:Dedecms通杀重装漏洞 利用apache解析+变量覆盖
PhpCMS一个漏洞的二次利用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服