小白学源码审计-1

admin 2022年3月7日16:37:59评论58 views字数 1408阅读4分41秒阅读模式

   北京的冬天太冷,似诗的南方阳光正高照着大地,北京的冬天太冷我已无法承受,我选择在南方过冬。小白紧了紧衣服,赶脚南方比北方还冷,直想往被窝里一缩,美美地睡上一觉。

小白最近看到关于源码审计的文章涌现而出,心里觉得痒痒的。再加上对源码审计颇觉神秘高深,特想进行源码审计。挖到漏洞后也是可以作为一个谈资,顺便在朋友面前炫耀。小白越想越兴奋,不觉偷笑起来,幸好办公室没人注意,不然,还不让人误会他在想啥歪点子?

小白立马坐直,提高专注度,上网找了个小众的开源CMS,下载源码后当即在虚拟机上部署,部署成功后在浏览器打开cms系统。搞到这里后小白有点蒙圈了,接下来应该如何进行审计呢?小白冥思苦想了好久,找来一些有关审计的文章,再结合常见的WEB漏洞,决定审计源码是否能发现SQL注入漏洞。

问题来了,在哪里会出现SQL注入漏洞呢?

根据小白以往的经验,SQL注入漏洞容易出现的地方主要是:

一切能输入的地方。如带ID参数的URL、搜索框、注册、登录和留言板等地方。

与数据库有交互的地方。如新闻ID不一致页面不一致即为可能与数据库有交互。

等等……

小白看下了,CMS系统,有搜索框输入的地方也有后台登录的地方。打算先尝试审计后台登录的地方,说不定存在万能密码或SQL注入呢。

小白查看了虚拟机里的后台路径,发现网站后台路径前四个字母是随机的,看来开发这套源码的同学还是具备一定的安全意识的。小白学源码审计-1

1、通过对index.html文件进行阅读,发现index.html登录请求提交到XXXCMS_Top_include.php?CF=users&Class=login,该文件底部使用了checkuser()函数

2、查找哪些文件存在checkuser()函数小白学源码审计-1

发现有两个文件存在该函数,分别是XXXCMS_Top_include.php和function.php

3、进入function.php查看该函数具体内容:小白学源码审计-1

发现该函数使用了htmlspecialchars,flags为空,默认值为ENT_COMPAT,仅编码双引号。可以看到$sql变量中user_ps和user_qx参数都是使用了单引号,故此存在SQL注入。

4、可以判断该文件专门用来检测用户是否登录,应该被其他文件包含使用,接着搜索哪些文件调用了XXXCMS_Top_include.php:小白学源码审计-1

发现在26个文件中有27个匹配结果。

5、访问后台存在的脚本XXXCMS_Info.php小白学源码审计-1

发现提示账号密码不正确重新登录

6、构造Cookie验证结果:小白学源码审计-1

7、成功绕过小白学源码审计-1

点击打开后台首页:小白学源码审计-1

再打开XXXCMS_Main.php试试:小白学源码审计-1

8、小白尝试把SQL查询语句中的单引号换成双引号小白学源码审计-1

9、重新构造Cookie进入XXXCMS_Main.php页面:小白学源码审计-1

发现提示账号密码不正确重新登录,可以证明对双引号(")进行了转义小白学源码审计-1

小白使用了Sqlmap进行SQL注入验证,发现、发现跑不出数据库,跑不出数据,跑不出~~~小白学源码审计-1

然后晚上来个人品大爆发跑出来了,竟然跑出来了,就是盲注速度略蛋疼~~~小白学源码审计-1

小白学源码审计-1

小白对自己竟然审计成功感觉很是高兴,于是接着这股高兴劲把审计的流程进行了总结并画出了一个审计流程图小白学源码审计-1

虽说耗时甚久,但小白觉得还是值得了,至少审计经验值提高了。又可以在朋友面前吹嘘自己技术得到了提高!

小白的故事未完待续~~~

若有不明之处,可留言提问!小白学源码审计-1小白学源码审计-1

本文始发于微信公众号(WhiteCellClub):小白学源码审计-1

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月7日16:37:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   小白学源码审计-1http://cn-sec.com/archives/489245.html

发表评论

匿名网友 填写信息