手机网站改app,江宁网站建设要多少钱,android 网站开发,免费作图网站都有哪些关注这个靶场的其它相关笔记#xff1a;SQLI LABS —— 靶场笔记合集-CSDN博客 0x01#xff1a;过关流程
输入下面的链接进入靶场#xff08;如果你的地址和我不一样#xff0c;按照你本地的环境来#xff09;#xff1a; http://localhost/sqli-labs/Less-39/ 本关是堆… 关注这个靶场的其它相关笔记SQLI LABS —— 靶场笔记合集-CSDN博客 0x01过关流程
输入下面的链接进入靶场如果你的地址和我不一样按照你本地的环境来 http://localhost/sqli-labs/Less-39/ 本关是堆叠注入先来看一下受害者原始数据我们的目标就是篡改信息或者删除信息 首先用 BP 抓包然后用时间盲注的字典去爆破后端 SQL 模板 如下是一个可以使用的 Payload 模板 1 and sleep(3)
通过上面的模板我们可以推测出其后端的 SQL 模板为 select * from users where id$_GET[id];
我们可以使用如下 Payload 做一个测试进行校验看看我们上面的推测是否正确 1 and 11 若页面回显内容则证明存在漏洞1 and 10 若页面回显为空则证明存在漏洞 明确了漏洞存在且知道 Payload 该怎么写后就是收集数据库信息、收集数据表信息 。。。 这些笔者在这里节省时间就不说了直接当作已知条件下面直接开始上堆叠注入的 Payload -- 修改 id 1 的用户密码为 HACKER1;update users set passwordHACKER where id1;# 如上我们已经能够随意篡改用户密码了。至此SQLI LABS Less-39 GET-Stacked Query Injection-Intiger Based 成功过关。
0x02源码分析
下面是 SQLI LABS Less-39 GET-Stacked Query Injection-Intiger Based 后端的部分源码以及笔者做的笔记
?php// take the variables if (isset($_GET[id])) {$id $_GET[id];//logging the connection parameters to a file for analysis.$fp fopen(result.txt, a);fwrite($fp, ID: . $id . \n);fclose($fp);// connectivity//mysql connections for stacked query examples.$con1 mysqli_connect($host, $dbuser, $dbpass, $dbname);// Check connectionif (mysqli_connect_errno($con1)) {echo Failed to connect to MySQL: . mysqli_connect_error();} else {mysqli_select_db($con1, $dbname) or die(Unable to connect to the database: $dbname);}// 直接拼接进 SQL 模板中$sql SELECT * FROM users WHERE id$id LIMIT 0,1;/* execute multi query */// mysqli_multi_query 执行一个或多个针对数据库的查询多个查询用分号进行分隔。 if (mysqli_multi_query($con1, $sql)) {/* store first result set */// mysqli_stroe_result 转移将上一次查询返回的结果集多个结果if ($result mysqli_store_result($con1)) {if ($row mysqli_fetch_row($result)) {echo font size 5 color #00FF00;printf(Your Username is : %s, $row[1]);echo br;printf(Your Password is : %s, $row[2]);echo br;echo /font;}// mysqli_free_result($result);}/* print divider */// mysqli_more_results 如果当前执行的查询存在多个结果返回 “真”否则返回 “假”if (mysqli_more_results($con1)) {//printf(-----------------\n);}//while (mysqli_next_result($con1));} else {echo font size5 color #FFFF00;print_r(mysqli_error($con1));echo /font;}/* close connection */mysqli_close($con1);} else {echo Please input the ID as parameter with numeric value;}?