搭建dvwa环境学习从MySql注入到GetShell – FreeBuf互联网安全新媒体平台 | 关注黑客与极客

是啊,在项目上的系统每周每个月颠末几十遍的过滤,日常平凡看到提交参数的地方也就sqlmap跑一跑,对付最根基的手工注入都没有踏实的学会,于是我抉摘要知道若何搭建情况并学会若何经由过程 mysql 到 getshell

小序

一转眼从刚开始看关于安然的根基册本到现在已经十个月的光阴了,对渗透测试的兴趣也赓续的增添,因为刚开始事情的需求,只来得及看一些常见破绽的基滥觞基本理就开始跟随师长教师傅开始渗透测试的事情现在还记得第一次自己发明 xss激动的心情,师傅领进门,进修到了很多常识,后来由于事情缘故原由到了安办事变目上去,三月粗拙的渗透测试能力不够以支撑在项目上有很好的实践,而且因为项目颠末其他渗透测试职员千百遍的浸礼对照严重的破绽也不在外貌做项目那么常见

有一天之前带我的师傅说给你网站,协助做下渗透,于是我颠末一番测试,发清楚明了暴力破解,还有一些验证绕过的逻辑破绽,促写了申报交差,师傅一顿夸之后说他自己经由过程注入getshell了一个同C段的网站,我说我C段扫描时刻并没有发明这个IP啊(挫败感之下的饰辞),然后我说我假如能发明这个系统应该也能getshell,师傅的一句话有点触及到我的那啥(你预计应该不会经由过程mysql注入getshell)

经由过程查资料,总结出了这篇文章,把自己心途经程写出来分享给初学者也盼望能获得大年夜牛的斧正,盼望入门级玩家能共勉,自己多创建进修的情况,多思虑

搭建情况

在刚开始进修的时刻,便是经由过程搭建DVWA进修各类破绽,sql注入,xss,文件上传等等,以是在想到若何搭建一个存在注入的情况时刻,脑海中立即有了这个设法主见,我们看到的教程每每只会先容若何经由过程高中低的安然级别进行破绽的复现,那为什么弗成以经由过程注入进行getshell呢,以是我立即搭建了情况筹备考试测验一下

STEP 1 筹备好必要的文件,在网上都可以免费下载的到

1)Xampp集成情况

2)Dvwa压缩包

STEP 2 点击安装并启动xampp,此中可能在开启apache时会呈现差错,此时必要经由过程改动config文件把端口改成未占用的端口即可,我这里就改为4433 与8081

把dvwa解压并放到xampp目录下的htdoc目录下

STEP 3 此时情况已经搭建完毕,造访登岸,就可以看到各类各样的破绽情况

参考:站内及网上有关于搭建情况的具体先容,如按照上述步骤不能搭建成功,可自行搜索办理问题

链接:http://www.freebuf.com/sectool/102661.html

破绽使用—— 手工篇

手工注入到getshell思路:

1)判断是否有注入,注入是字符型照样数字型;

2)然后使用sql语句来进行操作磁盘文件(mysql数据库读取磁盘文件是异常简单的,由于mysql供给了load_file()等函数,假如把数据库与网站装在同办事器上,就很轻易被写入webshell)

破绽使用

STEP 1输入1,查询成功

输入1′and ’1 ‘=’2,查询掉败,返回为空

输入1′or ’1234 ‘=’1234,查询成功,阐明存在注入

我们经由过程查看源代码功能,看一下在low级别中是若何进行数据库查询的

我们把我们刚才注入成功的语句拼接到sql查询语句中进行阐发

道理着实很简单,便是经由过程一个前提语句判断,假如where后面的前提语句为真,就可以进行查询,假如前提判断为假,就为错,不返回任何结果在高中我们进修前提语句的时刻就知道在进行or运算的时的规则:

道理着实很简单,便是经由过程一个前提语句判断,假如where后面的前提语句为真,就可以进行查询,假如前提判断为假,就为错,不返回任何结果在高中我们进修前提语句的时刻就知道在进行or运算的时的规则:

STEP 2 SQL语句只union查询

大年夜多半的SQL查询只包孕从一个或多个表中返回数据的单条SELECT语句(比如说我们在id处输入1,就会返回一个结果),然则SQL也容许履行多个查询(多条SELECT语句),并将结果作为一个查询结果集返回这些组合查询平日称为并或复合查询,一样平常常见的数据库有都支持UNION查询,应用UNION很简单,所要做的只是给出每条SELECT语句,然后再每条SELECT语句之间加上UNION关键字,这样所给出的SELECT结果集就能组合成一个结果集并返回

举例阐明

1)我们在id处输入1 ,返回一个结果

2)在id处输入1′ union select 1,2′,可以看出,我们在数据库中履行了两次select查询

并同时返回了两个结果

STEP 3 使用union查询履行mysql所带有的函数,对磁盘文件进行操作

1)我们输入1′ union select 1,’’ into outfile ‘C:/xampp/htdocs/dvwa/1.php’ # 应用into outfile 写入一句话木马,文件名为1.php,发明报错了,查找缘故原由

2)经由过程报错信息可以看到应该说是单引号闭合的问题,由于前段光阴在学python,以是抉择把一句话木马里的单引号改成双引号试一试

1′ union select 1,’’ into outfile ‘C:/xampp/htdocs/dvwa/1.php’ # (刚才开始不知道sql语句中单引号里要用双引号,的确熬煎啊,各类用单引号进行闭合,各类报错,各类头铁考试测验,我以致以为是不是我没有权限进行写入文件,差错的狐疑人生)

3)没有报错信息了,成功了?查看目录,公然有了1.php文件,赶快上菜刀(惬意啊,虽然没有真实情况那么兴奋,然则终究也算是使用成功了)

手工测试到这里就停止了,像我这种对象狗,肯定设法主见子用对象来办理

破绽使用—— 对象篇

最常见的使用发明sql注入的要领便是sqlmap了,做渗透测试的人手一本,知道存在sql注入,上来就拿过来跑一跑

STEP1 :发明注入,并且实现

URL:http://127.0.0.1:8081/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#,哇X,结果竟然掉败了,经由过程下图的sqlmap中报的302信息中可以看到在进行测试时是跳转到了登岸界面,原本用sqlmap测试是必要登岸的

一番操作,知道要添加cookie进行测试,成功啦

STEP 2:使用sqlmap中os-shell 参数继承进行进击(–os-shell 也便是从注入点得到一个交互式的shell,给我们供给了一个情况可以履行必然的系统敕令,讲白了也便是类似于在windows下的cmd)

STEP 3: 根据具系一切的情况来选择说话,Dvwa用的是php,自然就选择php,然后选择2自定义上传位置此处想要得到shell,就必须知道网站的绝对路径(C:\xampp\htdocs\dvwa中的路径分隔符\在windows下必要在加上\进行转译)

STEP 4 :可以看到得到了os-shell,并且在网站目录下上传了两个php款式的文件,我们对这两个文件进行造访,可看到给我们供给了上传点,经由过程上传点进行木马文件的上传

STEP 5: 使用此上传点上传2.php,内容为php一句话木马(认识php的可以自己写,不认识的可以百度),然后经由过程菜刀进行连接,得到shell

总结

自己的进修探索历程远远不止这些,由于在搭建情况包括在使用破绽的时刻都邑呈现各类各样的问题,都必要经由过程赓续的探索去办理,比如说在手工进行注入的时刻以致由于单引号是中文的照样英文的吃过亏,还有若何进行单引号闭合,进行sqlmap进行进击的时刻必要添加cookie,在得到os-shell时刻必要加反斜杠进行转译等等…,一次一次的差错,一次一次的办理,不放弃静下心来办理问题,进修的历程便是如斯,包括日常平凡的渗透也是如斯,必要耐下心来逐步的摸索,在摸索的历程中赓续提升自己的技巧,赓续的生长,终究大年夜牛也不是一天练成的

毛病

1)情况为搭建的情况,权限较高,也没有防火墙、waf等安然设备的防护,不会呈现被拦截等环境,真实的情况每每必要躲过一重又一重的防护

2)文章中未涉及linux下的进击使用要领,由于os-shell不停是一个吐槽的点,这必要注入点有多大年夜的权限啊,有这个权限,我还必要这个操作么之类的?此中在linux就由于权限的问题没有办理,以是没有使用成功,同时看了大年夜牛的文章什么监听反弹shell之类的也是有点懵的

以是盼望新手看到这篇文章后,可以自己去装虚拟机去考试测验并不是说能学到若干内容,更紧张的照样总结出自己日常平凡进修的思路,自己给自己创造情况,多用虚拟机,见识多了自然懂的就多了,也盼望大年夜牛看到了能多提意见,给新手生长的空间与时机

*本文作者:zhengpengfei,转载请注明来自 FreeBuf.COM

赞(0) 打赏
分享到: 更多 (0)
免责申明:本站所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,不保证真实性,并不承担任何法律责任

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

阿里云优惠网 更专业 更优惠

阿里云优惠券阿里云大礼包