第1-3处SQL注入
二次注入,问题在会员中心,购买信息币是存在二次注入:
member.php文件:
这里存在多处二次注入。
第一处:
money_diff($_username, $_money, $type);
第二处:
credit_diff($_username, $_credit, $type);
第三处:
gold_add($_username, $number, $type);
我们来看看这写函数:
从上面的函数看出,都直接把username带进了SQL语句。
来看看这个username的来源:
username是直接从用户的信息中取出,没有经过任何过滤直接进入了上面的sql语句,导致二次注入。
漏洞证明:
那么我们注册两个恶意的用户时,如:
1、222222
2、222222' and sleep(5)#
此时,登陆用户2,访问http://localhost/phpmps/member.php?act=gold
然后购买信息币,提交时就会触发执行我们的恶意sql语句,sleep(5)
第4-5处SQL注入
还是二次注入,问题在会员中心,发布我的信息时存在二次注入:
post.php文件:
发问信息后,会进行积分奖励,这里又是直接使用了$_username。
第四处SQL注入:
先来看看getCreditTimes函数:
这里直接使用了$_username。
第5处SQL注入:
看看函数credit_add,这里也是用了$_username:
然后也是直接进入sql语句。
最后看看$_username的来源,/include/commom.php文件:
直接获取的用户的信息,没有过滤,直接进入sql语句。
要是我们注册恶意的用户名,导致二次SQL注入。
漏洞证明:
那么我们注册两个恶意的用户时,如:
1、222222
2、222222' and sleep(5)#
此时,登陆用户2,访问http://localhost/phpmps/post.php发表信息,然后提交时就会sleep(5)