所以我有一个工作项目,试图教我的老板开始使用准备好的 SQL 语句,但他不太在意,说这没什么大不了的。我想知道如何向他证明这很重要,但我就是不知道如何在我们设置的开发测试服务器上注入 drop table 命令。我为一家处于测试阶段的公司开发了一个应用程序,我想将其删除(备份)以向他展示问题,因为我正在使用他的 SQL 代码。我试图让公司养成使用准备好的陈述的习惯,但我似乎是唯一一个想要改变的人,而他们没有。有人可以帮我用 SQL 注入“破解”这个数据库吗?谢谢!!
要提交的表单上有一个评论框,当它看到撇号时会抛出错误:
无法进行查询:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 78 行的 's";', '100', '100')' 附近使用正确的语法
我试过了
foo'); DROP TABLE cabletypes;--
但给出同样的错误。在提交表单之前在文本区域中输入时,如何使其成功注入?文本区域提交到“评论”列和值。
SQL
$sql="INSERT INTO cabletypes
(cable_type,
sample_no,
sample_date,
section_lg,
wet_dry,
avgofppf,
sheath_type,
plastic_wt,
inner_sheath,
inner_al_wt,
inner_steel_wt,
cable_guard,
guard_al_wt,
guard_steel_wt,
guard_other_wt,
total_pairs_a,
pair_count_gauge_a,
copper_wt_a,
total_pairs_b,
pair_count_gauge_b,
copper_wt_b,
total_pairs_c,
pair_count_gauge_c,
copper_wt_c,
total_pairs_d,
pair_count_gauge_d,
copper_wt_d,
sum_pairs,
copper_wt,
copper_percent,
lead_wt,
lead_percent,
contains_lead,
waste_wt,
sampler,
supervisor,
comments,
cable_no,
section_no)
VALUES (
'$cable_type',
'$sample_no',
'$sample_date',
'$section_lg',
'$wet_dry',
'$avgofppf',
'$sheath_type',
'$plastic_wt',
'$inner_sheath',
'$inner_al_wt',
'$inner_steel_wt',
'$cable_guard',
'$guard_al_wt',
'$guard_steel_wt',
'$guard_other_wt',
'$total_pairs_a',
'$pair_count_gauge_a',
'$copper_wt_a',
'$total_pairs_b',
'$pair_count_gauge_b',
'$copper_wt_b',
'$total_pairs_c',
'$pair_count_gauge_c',
'$copper_wt_c',
'$total_pairs_d',
'$pair_count_gauge_d',
'$copper_wt_d',
'$sum_pairs',
'$copper_wt',
'$copper_percent',
'$lead_wt',
'$lead_percent',
0,
'$waste_wt',
'$sampler',
'$supervisor',
'$comments',
'$cable_no',
'$section_no')";
}
mysql_query($sql) or die ("Unable to Make Query:" . mysql_error());
print("Sample Sheet Submitted Successfully!");