|
第一篇https://www.chinabaiker.com/thread-2687-1-1.html
这次我们玩的是中等难度,主要是结合低难度的源代码与中等难度的代码对比进行的。
攻击模块1:Brute Force(暴力破解)
我们对比一下两个难度的代码。可以看到两边的差别就是medium通过mysql_real_escape_string转义了用户输入的预定义字符,而对暴力破解并没有做修复,所以我们low中的万能密码不能用了,但是burpsuite暴力破解还是可以的。
按照第一篇文章中的操作步骤,最后得到
攻击模块2:Command Injection(命令注入)
通过对比代码我们发现对中等难度中对&&进行了过滤替换
通过调试输出我们也可以看到,连接符被过滤成空格,带入windows执行后返回错误
在我们第一篇文章中我们还介绍了另外两种连接符,我们使用另外两种连接符即可成功绕过(&、|绕过)
攻击模块3:Cross Site Request Forgery(CSRF跨站脚本伪造)
这里增加了头部的验证
我们使用第一篇中的csrf.html提交发现无法提交,因为这里的HTTP_REFERER为空,条件不成立,所以无法提交
虽然他验证了HTTP_REFERER,但是他是可控的,我们可以修改啊,修改后的payload,这里加了一段php代码伪造REFERER,所以脚本也变成了php的
再次提交,验证通过
攻击模块4:File Inclusion(文件包含)
我们发现这里过滤了../,这样我们就没法直接跨目录了
后来找了一些资料,问了几位表哥又发现了新的姿势 通过..\也可以跨目录
攻击模块5:File Inclusion(任意文件上传)
对比代码发现在medium中验证了文件类型
我们在上传php脚本会被拦截 因为我们的php脚本是文本类型
这时我们先上传一个图片马
burpsuite本地代理抓包拦截,修改后缀 在上传
上传成功
同理,这里也可以直接上传一个php脚本,抓包修改类型为image/jpeg。
攻击模块6:Insecure CAPTCHA(不安全的验证码)
略过,原因参考第一篇文章
攻击模块7:SQL Injection(SQL注入)
这里他有两处修改,一个是前端使用了select标签,想限制我们的输入,但是所有前端的验证都是不安全的,这里直接修改源码即可。
后台代码也通过mysql_real_escape_string进行了转义,但是这里有一个逗比的地方,看一下在将ID带入sql语句查询的时候并没有单引号,是的没有单引号。。。没有单引号。。。。。
这样的话我们在注入的时候就不需要考虑单引号的闭合问题,所以说他的mysql_real_escape_string完全没有卵用,我们直接写注入语句
攻击模块8:SQL Injection (Blind)(SQL注入 盲注)
这个跟上一个攻击模块一样的前端用了选择框,后台代码mysql_real_escape_string过滤同样在查询的时候没有加单引号,同样mysql_real_escape_string没有卵用
这次我们在前端带入查询语句
点击submit后 参数被后台php接受带入语句查询
攻击模块9:Reflected Cross Site Scripting (xss)(反射型跨站脚本)
通过代码可以看出,这个通过字符串替换函数过滤了<script>关键字
这里我们换个没有script的payload:<img src="1" />
更多xss payload:http://d3adend.org/xss/ghettoBypass
攻击模块10:Stored Cross Site Scripting (XSS)(存储型跨站脚本)
$Message进行了三次确切说是四次过滤,但是$name什么都没干。。。。。。。
虽然name在前端限制了长度 但是没什么卵用
/******************************************************************************
以上只是个人思路,有更好的欢迎补充。
|
|