sqllib 18-22

less18

post界面,还显示ip地址?莫非……注入点在ip上?

看看源码

好家伙,username和password都被处理了,有点意思

然后

$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

注意: PHP 5.4.0 之前,$HTTP_SERVER_VARS 包含着相同的信息,但它不是一个超全局变量。 (注意 $HTTP_SERVER_VARS 与 $_SERVER 是不同的变量,PHP处理它们的方式不同)

$_SERVER[‘HTTP_USER_AGENT’] //当前请求的 User_Agent: 头部的内容。
$_SERVER[‘REMOTE_ADDR’] //当前用户 IP 。

insert?ip_address? uagent?看起来应该有机会进行注入

成功登陆如图所示

那抓个包看看,

???????抓不出来,啊这,怎么会这样

百度查了一下需要将127.0.0.1改成本机ipv4的dns,brupsuit不支持抓本地包

在proxy 中抓到的包发到repeater中,对user-agent进行‘注入,响应中出现报错

回显的话,就用报错注入吧

之后就是和前面一样的啦

然后网上有这种解法但是在我这里不仅不会出数据还不会报错,只能显示ip地址

less 19

referer 写面上了,那根据上一关,注入点应该在这里了

这边的submit的name可以不修改(改了也能用),这里没有用hackbar,不会报错

来个’试一试,报错了,那剩下的应该和less 18一样,

打了n个报错语句之后,都不报错,再用‘试一下

绝了,算了,重新抓包吧,这就离谱

好了可以了

尝试一些之前没打过的语句

这边因为没有限制的缘故,所以只显示了部分数据

那真的就没机会一次性爆出所有数据???

注:

然后你可能会发现都没有再用#了,

#是sql语句中的注释符,+ 在http请求中表示空格,但get与post中,由于http请求的转义,请求到后端sql语句拼接的时候可能会不一样。

get请求的时候一般用:

1′ and 1=1 –+

//这里最后的空格用+,在请求的时候不会被urlencode,到后端sql语句中就会成为一个正常的空格,– 后面的语句就会被注释。

但是如果在post里最后用加号的话就会被urlencode成%2B,实际的空格被转义才被转义成+

post请求的时候一般用:

这时候,在post的情况下,最后一个空格,可以直接用空格,不用+来代替,因为post参数 空格会自动转成+;

而之所以不在get注入的时候使用“#”来注释,是因为,请求时,“#”不会被urlencode为“%23”,被识别为锚链接,无法传递至sql语句中。

‘ and select count(*),concat(0x3a,0x3a,(select group_concat(username,password) from users where username not in (‘Dumb),0x3a,0x3a,floor(rand(0)*2))x from users group by x and ‘1’=’1

less 20

只要你登录正确的账户密码

密码不对的话

关于cookie

cookie反正不是能吃的小饼干,

Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息。

目前有些 Cookie 是临时的,有些则是持续的。临时的 Cookie 只在浏览器上保存一段规定的时间,一旦超过规定的时间,该 Cookie 就会被系统清除。

持续的 Cookie 则保存在用户的 Cookie 文件中,下一次用户返回时,仍然可以对它进行调用。在 Cookie 文件中保存 Cookie,有些用户担心 Cookie 中的用户信息被一些别有用心的人窃取,而造成一定的损害。其实,网站以外的用户无法跨过网站来获得 Cookie 信息。如果因为这种担心而屏蔽 Cookie,肯定会因此拒绝访问许多站点页面。因为,当今有许多 Web 站点开发人员使用 Cookie 技术,例如 Session 对象的使用就离不开 Cookie 的支持。

所以用户的cookie被盗用的话,天知道会发生什么(此处应该有滑稽)

less 20就是在cookie中注入,也是单引号

less21、less22

这边对cookie进行了base64编码,less21为单引号,less22为双引号

其余皆与前面相同,就不再说了。