Less-11(POST-ErrorBased-SingleQuotes-String)打开Less-11的页面,可以看到一个登录框,需要输入用户名和密码,由本关名字可知SQL语句是单引号闭合。万能密码那么先尝试一下万能密码登录,用户名:admin'#、密码随便填一个:从上图可以看出登陆成功,并且会回显账号和密码。其他方法判断注入先随便尝试一个账号密码,uname=name&passwd=pass显示登录失败,接着修改post包,加入引号看是否会报错.可以发现加入引号之后报错了,并且判断出SQL语句的闭合方式是单引号。到此可以发现SQL语句的报错会显示在前端页面。判断当前数据表列数注入语句:u
Less-8(GET-Blind-BooleanBased-SingleQuotes)打开Less-8页面,可以看到页面中间有一句PleaseinputtheIDasparameterwithnumericvalue,那么先使用ID这个参数通过GET方式传入一个数值。确定注入点注入语句:?id=1。可以看出没有回显查询结果。接着试一下?id=1',发现出错了,但是并不回显错误。根据本关的名字知道SQL语句使用单引号闭合。尝试使用单引号闭合注释看是否成功,注入语句:?id=1'--+接着使用注入语句?id=1'and1=1--+和?id=1'and1=2--+确定是否存在注入点:发现前一条注入语
Less-7(GET-Dumpintooutfile-String)打开Less-7页面,可以看到页面中间有一句PleaseinputtheIDasparameterwithnumericvalue,那么先使用ID这个参数通过GET方式传入一个数值。确定注入点注入语句:?id=1。可以看出没有回显查询结果。接着试一下?id=1',发现出错了,但是并不回显错误。也就是说我们无法从前端得知语法错误,这样就无法确定闭合符号。接着尝试?id=1",看到没有页面显示正常,那么SQL语句可能是使用双引号进行闭合的。使用注入语句:?id=1"--+看看是否能够正常闭合并注释,从下图看出是没有问题的。接着尝试
Less-6(GET-Doubleinjection-DoubleQuotes-String)打开Less-6页面,可以看到页面中间有一句PleaseinputtheIDasparameterwithnumericvalue,那么先使用ID这个参数通过GET方式传入一个数值。确定注入点注入语句:?id=1。从上图可以看出传入id=1并没有回显查询结果,接着试一下?id=1',并没有任何异常,那么尝试一下?id=1",发现在引号附近产生歧义导致了报错。并且通过报错信息可以看出闭合SQL语句时用的是双引号。这时可以考虑使用报错注入(有关报错注入)。使用注入语句:?id=1"--+看看是否能够正常闭
Less-5(GET-Doubleinjection-SingleQuotes-String)打开Less-5页面,可以看到页面中间有一句PleaseinputtheIDasparameterwithnumericvalue,那么先使用ID这个参数通过GET方式传入一个数值。确定注入点注入语句:?id=1。从上图可以看出传入id=1并没有回显查询结果,接着试一下?id=1',发现在引号附近产生歧义导致了报错。并且通过报错信息可以看出闭合SQL语句时用的是单引号。由于这里不回显查询结果,但是依然会显示报错信息,那么就不使用联合注入,而选择报错注入。使用注入语句:?id=1'--+看看是否能够正常
Less-4(GET-Errorbased-DoubleQuotes-string)打开Less-4页面,可以看到页面中间有一句PleaseinputtheIDasparameterwithnumericvalue,那么先使用ID这个参数通过GET方式传入一个数值。确定注入点注入语句:?id=1。可以看出传入id=1可以正常回显,那么试一下?id=1',发现也是可以正常回显的。接着尝试拼接?id=1",发现在双引号附近产生歧义导致了报错。并且从上图报错中可以看出这条SQL语句的闭合方式为"),那么使用注入语句:?id=1")--+,看看是否能够正常闭合并注释,从下图看出是没有问题的。接着尝试注
Less-3(GET-Errorbased-Singlequoteswithtwist-string)打开Less-3页面,可以看到页面中间有一句PleaseinputtheIDasparameterwithnumericvalue,那么先使用ID这个参数通过GET方式传入一个数值。确定注入点注入语句:?id=1。可以看出传入id=1可以正常回显,那么试一下?id=1',发现在引号附近产生了歧义导致报错。并且从上图报错中可以看出这条SQL语句的闭合方式为'),那么使用注入语句:?id=1')--+,看看是否能够正常闭合并注释,从下图看出是没有问题的。接着尝试注入语句?id=1')and1=1-
Less-2(GET-Errorbased-Intigerbased)打开Less-2页面,可以看到页面中间有一句PleaseinputtheIDasparameterwithnumericvalue,那么先使用ID这个参数通过GET方式传入一个数值。确定注入点注入语句:?id=1。可以看出传入id=1可以正常回显,那么试一下?id=1',发现在引号附近产生了歧义导致报错,并且可以看出这条SQL语句是不用引号闭合的。接着尝试注入语句?id=1and1=1--+和?id=1and1=2--+,发现注入第一条语句时正常回显,注入第二条语句时没有回显,由此判断存在注入点。判断数据表列数通过order
Less-1(GET-Error-Singlequotes-String)打开Less-1页面,可以看到页面中间有一句PleaseinputtheIDasparameterwithnumericvalue,那么先使用ID这个参数通过GET方式传入一个数值。确定注入点通过传入id=1看到页面上查询结果是有回显的,接着尝试一下?id=1'可以看到页面报错了,说明id=1'导致SQL语句产生了歧义。通过报错信息可以看出闭合SQL语句时用的是单引号。关于在HTTP请求中的注释问题:在浏览器的GET请求中,URL中#号是用来指导浏览器动作的(例如锚点),对服务器端无用。所以,HTTP请求中不包括#,因此
Less-11(POST-ErrorBased-SingleQuotes-String)打开Less-11的页面,可以看到一个登录框,需要输入用户名和密码,由本关名字可知SQL语句是单引号闭合。万能密码那么先尝试一下万能密码登录,用户名:admin'#、密码随便填一个:从上图可以看出登陆成功,并且会回显账号和密码。其他方法判断注入先随便尝试一个账号密码,uname=name&passwd=pass显示登录失败,接着修改post包,加入引号看是否会报错.可以发现加入引号之后报错了,并且判断出SQL语句的闭合方式是单引号。到此可以发现SQL语句的报错会显示在前端页面。判断当前数据表列数注入语句:u