重点插入:html表
第二十一题
分析过程:(没有正确的账号密码是否能拿到Cookie?最后注释好像只能使用#,--+好像无法注释)
查看源码
这里输入账号密码处被过滤了
但Cookie被base64编码了
可以从Cookie入手
输入正确的账号密码,可以发现Cookie出,uname进行了base64编码
所以我们注入语句也要采用base64编码
用bp抓包,拿到Cookie值,
添加单引号的转义符,位数不够用空格补全
根据报错信息判断为单引号带括号注入
之后将报错盲注转换为base64格式即可
报错盲注:
第二十二题
分析过程看第二十一题
Cookie的base64编码
admin"进行base64编码
判断为双引号注入
第二十三题
get注入,报错显示未单引号注入
进行SQL注入会发现输入的内容全报错,可能是注释被过滤了,查看源码
学习:注释被过滤如何闭合
可以使用单引号闭合:
?id=1' or '1'='1
闭合后:?id=1' or '1'='1'
联合注入语句: ?id=1' union select 1,2,3 or '1'='1
判断列数时用order by好像没什么效果,可以用select 1,2,3 逐个判断列数
联合查询详解请看第一题
第二十四题
我的疑问:二次注入如何环境搭建获取数据库信息
二次注入
参考博文(非常详细):http://t.csdnimg.cn/BgbRO
一个登录页面,可以注册账号,也可以找回密码
登录成功后可以修改密码
点击忘记密码:提示字符(如果你忘记密码,请破解它)
查看源码,账号密码被转义,无法注入
注册账号界面,注册admin'#,注册成功
'被转义,但是存放到了数据库中
二次注入就是放到数据库数据被过滤,但是从数据库再把信息拿出来则不会被过滤
登录后修改密码
这时候注入则不会被过滤,输入admin'#的原理就是#号后面的内容被注释了,‘与前面的’ 闭合了,就直接上传admin了
第二十五题
更正:本题为双写绕过,所有的and和or都会被替换为空,但只替换一次,可以采用双写绕过,如order by 改为 ororder by
提示:
根据报错信息,判断为单引号注入
输入and or均被过滤
查看源码
之后的注入可以使用联合查询
第二十六题
第二十六关将逻辑运算符,注释符以及空格过滤
单引号注入
第二十六a题
绕过技巧:
1.空格绕过
%09 TAB键(水平)、%0a 新建一行、%0c 新的一页、%0d return功能、%0b TAB键(垂直)、%a0 空格,
学习文章:http://t.csdnimg.cn/vn0ti