自学内容网 自学内容网

记录某商城0元购和SQL注入漏洞

💗想加SRC漏洞挖掘内部圈子,请联系我!
💗技术文章交流,请联系我!
💗需要职业技能大赛环境+WP,请联系我!

🍬 博主介绍
👨‍🎓 博主介绍:大家好,我是 一个想当文人的黑客 ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【edusrc漏洞挖掘】 【VulnHub靶场复现】【面试分析】
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋

🍬 博主资源
🎉需要如下资料和培训的可加微信和知识星球(前50名为邀请嘉宾) 知识星球号:9081196🎉
1、全国职业技能大赛——信息安全管理与评估WP+环境
2、全国职业技能大赛——司法技术赛项WP+环境
3、CTF最新资料+相关工具(圈子交流)
4、SRC漏洞挖掘的大量原创报告

0x1 前言

哈喽,师傅们!

这次给师傅们分享的是一个商城的0元购和SQL注入漏洞,写的还是蛮详细的,让师傅们都能够看的懂。这个零元购很多师傅都没有亲自去挖过,下面我给师傅们分享的案例,师傅们可以仔细看看,然后看完师傅们就可以多去那种商城测试下,然后打一波零元购,还有就是付款页面的前端校验,看看能不能通过bp进行一个绕过。

0x2 商城0元购

一、支付漏洞简介

支付漏洞是 高风险漏洞 也属于 逻辑漏洞,通常是通过 篡改价格、数量、状态、接口、用户名等传参,从而造成 小钱够买大物 甚至可能造成 0元购买商品 等等,凡是 涉及购买、资金等方面的功能处 就有可能存在支付漏洞。文中如有错误的地方,还望各位大佬在评论区指正。

二、0元购漏洞

零元购漏洞测试

这次挖掘的这个0元购还是运气好,就是纯逻辑漏洞,然后进行一个前端的绕过就可以直接0元购的,也没有进行一个后端校验。

然后呢,这个0元购也是上个月挖的,也是直接在漏洞盒子提交成功了,厂商那边也是审核通过了我的这个漏洞,也是给了个高危。这次把这个案例拿出来的原因是这个案例比较经典,就是很经典的0元购,也是为了让一些小白师傅们能够更好的掌握0元购。

这次零元购的目标是一个卖会员的一个专营店,然后也是对这个目标站点进行一个测试

这里经过多个功能点测试,发现这里支付会员的功能点页面可能存在一个零元购(像这样的站点高低得测下零元购)

点击购买,选择,然后输入购买数量和联系方式

这里为了给师傅们展示漏洞零元购的效果和危害,直接选择一年会员,168元,然后后面再零元购成功,让师傅们感受下这个漏洞的危害

这里把所以的信息都填好以后,然后使用bp进行一个零元购的测试

直接使用bp抓包,然后进行订单的金额修改,把下面的168元都改成0.00元,然后再放包

bp放包后,成功只需要0.10元(修改的是0.00应该是进一了)这里直接零元购成功了

支付成功以后,还可以查询到自己订阅的订单号

这里说明我们已经成功修改支付金额为0.10元

修复建议
  1. 输入验证:确保对所有输入数据进行严格的验证和过滤,以防止用户输入恶意代码或非法字符。验证用户输入的格式和内容,例如金额、数量等,并确保输入数据的有效性和合法性。
  2. 安全算法:使用加密算法来保护支付过程中的敏感信息,如用户密码、支付账号等。确保使用强密码机制,并加密存储用户敏感信息。
  3. 限制权限:使用权限管理来限制对支付功能的访问权限。只授权必要的用户或角色能够执行支付操作,并确保对敏感操作进行审计。
  4. 双重认证:引入双重认证机制,如短信验证码、指纹识别等,以增加支付过程的安全性。通过引入额外的身份验证步骤,可以降低被恶意用户利用漏洞进行支付的风险。

0x3 SQL注入漏洞

这个SQL注入漏洞跟上面的是同一个站点的,但是是不同的功能点,我是在测试完上面的零元购以后,然后还在别的地方测试了下,这里的订单界面还存在一个SQL注入漏洞

一、影响参数:

and ascii(substr(database(),1,1))>1-- - and ascii(substr(database(),1,1))>120-- -

二、漏洞POC:

https://www.payindex.php?shop=120 and ascii(substr(database(),1,1))>1-- -

https://www.payindex.php?shop=120 and ascii(substr(database(),1,1))>120-- -

三、SQL注入漏洞测试

这个SQL注入漏洞是存在get传参的地方,然后在购买会员的页面 发现存在SQL盲注

**1.利用sql盲注的方法 **

and ascii(substr(database(),1,1))>1-- - 页面正常

使用and ascii(substr(database(),1,1))>120-- - 页面报错

说明存在sql盲注,我们就是可以尝试利用sqlmap工具脚本跑下

2、sqlmap跑脚本

下图是利用sqlmap跑出来的,可以看到改网站是GET传参,MySQL≥5.0.12

后面跑出来的数据库,为了用户的隐私,没有展现出来

sqlmap -u " https://www.xxxxx/payindex.php?shop=120" -p name --technique=T -v 1 --dbms

//这里–technique=T 是指定注入的类型位时间延长注入

四、修复建议

  1. 使用参数化查询或预编译语句: 确保所有的 SQL 查询语句都是通过参数化查询或预编译语句执行,而不是通过字符串拼接。这样可以防止恶意输入被执行为 SQL 代码。
  2. 输入验证和过滤:对用户输入的数据进行严格的验证和过滤,确保在接收用户输入时,只允许合法的字符和格式,并拒绝特殊字符和 SQL 关键字。此外,可以通过输入长度限制和类型检查来进一步增强输入验证。
  3. 最小权限原则:确保数据库访问的最小权限原则,即用户账户只拥有执行必要操作的权限,避免使用具有过高权限的账户执行数据库操作。
  4. 错误信息处理:避免在用户错误输入时,返回详细的错误信息,以免给黑客提供有关数据库结构的相关信息,并避免直接将原始 SQL 错误信息暴露给端用户。

0x4 总结

这个给师傅们分享的0元购和SQL注入漏洞文章就到这里了,后面要是还有相关的漏洞挖到了,继续给师傅们进行一波分享。

这里也希望这篇文章对师傅们有帮助,然后有任何的问题欢迎师傅们来评论区进行交流。

文章中涉及的敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打码处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担。


原文地址:https://blog.csdn.net/SENMINGya/article/details/142938510

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!