赞
踩
1,概念
SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
一,攻击过程
信息探测
kali里面主要下面三个探测方式:
·扫描主机服务信息以及服务版本
-- nmap -sV 靶场IP地址
如下图所示:
·快速扫描主机全部信息
-- nmap -T4 -A -v 靶场IP地址
这个与上面的比较起来扫描时间会更多,但信息会更全面,
·探测敏感信息(kali里面经常用)
-- nikto -bost http://靶场IP地址:端口
这个扫描会发现一些漏洞,下面比如说一些常见的漏洞,xss-protection 头保护没有定义,x-content-type..的一些参数也没有进行一些设置,在平时渗透测试的时候如果找不到,也可以把这些当做输出,总比一点也没有好;其中可以从cookie 中看到一个类似于后台的东西;从网址的URL中构造
可以
扫描结果分析,可以看到开放了两个端口,22和80,22是ssh登录的一个端口,一般情况下不会对22端口进行攻击,攻击的话进行爆破,把口令爆破出来,除非是80端口攻击毫无进展的时候才考虑。
web漏洞扫描器owasp-zap
OWASP ZAP攻击代理服务器是世界上最受欢迎的免费安全工具之一。ZAP可以帮助您在开发和测试应用程序过程中,自动发现 Web应用程序中的安全漏洞。另外,它也是一款提供给具备丰富经验的渗透测试人员进行人工安全测试的优秀工具。https://www.zaproxy.org/download/
https://github.com/zaproxy/zaproxy/releases/tag/v2.10.0
用这个扫描工具可以更好的查看漏洞;
(该软件和kali里面的nikto扫描比起来,nikto只扫描了一些简单的漏洞,并没有进行一些sql注入测试,)
2,漏洞利用
其中看到有一个跨站漏洞,跨站对于我们拿权限来说并没有什么用,也会发现里面存在sql注入漏洞,标红的就是可能存在注入漏洞的链接:然后直接对该链接进行一个sqlmap的探测:
sqlmap -u "http:/ /192.168.147.139/cat.php?id=3" --batch
--batch 是对数据库进行sql注入检测
直接跑的话是对所有数据库进行检测,如果我们知道是MySQL数据库的话就可以在后面添加database进行爆破
出现这个基本确定出现有sql漏洞;
sqlmap -u "http:/ /192.168.147.139/cat.php?id=3" --batch --dbs
列出数据库的所有库:
information库是自带的,对下面那个进行检测;
sqlmap -u "http:/ /192.168.147.139/cat.php?id=3" --batch -D photoblog --tables
打开库里面的表
里面有一个users的表,sqlmap -u "http:/ /192.168.147.139/cat.php?id=3" --batch -D photoblog -T users --clomus 查看users表中的字段,发现三个字段,
sqlmap -u "http:/ /192.168.147.139/cat.php?id=3" --batch -D photoblog -T users --C "login,password" --dump
(后面加--dump是爆出所有的内容)
得到后台的账号密码后,肯定是寻找一些上传点,上传我们的shell,然后 get shell,然后进一步考虑提权;
这里的密码是一个md5 的加密,md5 的加密在sqlmap里面是自动解密的,被后台自动解密出来了,(P4ssw0rd);
3,上传shell
(1)设置监听,启动msf
然后 run 监听设置完成,如果有反弹的话是可以看到的;
将生成的反弹shell.php文件在上传点上传,一般网站会进行一个上传文件的一个检验,有点基于白名单有的基于黑名单,需要进行绕过,白名单就是允许上传的后缀名,文件上传绕过总结见其他博客,这里是黑白名单绕过,其他还有什么前段js绕过,文件类型错误绕过.....
上传成功之后就运行我们上传的shell文件,就会发现监听窗口有反应
但是反应的会话有些时候并不能 进入到我们shell的一个页面,
当然这并不影响,我们可以上传一句话木马; 在菜刀中执行;
一句话木马上传成功之后我们需要得到他的一个路径;
打开一句话木马文件之后 直接复制一句话木马中的图片地址;在搜索栏中打开地址,打开之后复制地址,再打开菜刀(不一定是菜刀,蚁剑也行);
后面的密码,在一句话木马中打开可以看到;
添加之后就可以看到后台的一些文件目录了,就getshell了,拿到后台了
一般flag都在root目录下,但是我们是没有权限的,就需要另外一个知识进行提权, 但是这里有的时候就是藏在普通目录里面,需要自己去找;
ps:关于提权,根据Linux版本的漏洞可以利用,一般都是通用的;上述在监听页面没有反馈到shell的页面,师傅说可能是他的网络问题,一般是可以得到shell页面的;至此sql漏洞利用到此结束;
总结:先信息探索;发现漏洞,利用漏洞,这里的是sql漏洞,用sqlmap得到账号密码进入后台,找到上传点上传shell去get shell,然后
提权是难点,另外再学。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。